logo

snprintf()-funksjonen i C

I denne delen vil vi diskutere funksjonen snprintf() i programmeringsspråket C. snprintf er en forhåndsdefinert bibliotekfunksjon til stdio.h header-filen, som omdirigerer utdataene fra standard printf()-funksjonen til andre buffere.

hva er 10 av 1 million

Funksjonen snprint() brukes til å formatere de gitte strengene til en serie med tegn eller verdier i bufferområdet. Funksjonen snprintf() inneholder et 'n'-argument som representerer maksimalt antall tegn, inkludert null-tegnet, lagret i bufferområdet.

snprintf-funksjonen returnerer også antall tegn som er satt inn eller skrevet til bufferen. Disse tegnene returneres eller vises av printf()-funksjonen i print-setningen eller tegnene i stdout-overskriftsfilen.

snprintf()-funksjonen i C

Merk: snprintf()-funksjonen setter inn et null-tegn på slutten av den resulterende utdata som også regnes som størrelsen på bufferen. Videre er bufferen en matrise som bare lagrer tegntypeelementer, ikke i strengtypen.

Syntaks for snprintf()-funksjonen i C

Følgende er syntaksen til snprintf()-funksjonen i programmeringsspråket c.

 int snprintf (char *str, size_t size, const char *format, ?); 

Parametere:

str : Det er en arraybuffer av tegntype.

størrelse : den definerer maksimalt antall tegn som kan lagres i bufferen.

format : I C-språket definerer strengen et format som inneholder samme type spesifikasjoner som printf()-funksjonen definerer i stdio.h-headerfilen.

…: Det er en valgfri (…) parameter eller argument.

Returverdier:

Funksjonen snprintf() returnerer antall tegn eller verdier som er skrevet eller lagret for en tilstrekkelig stor buffer uten å inkludere null-avsluttende tegnet. Og hvis de skrevne tegnene er større enn bufferstørrelsen, returnerer den en negativ verdi. Og hvis bufferstørrelsen er for liten, vil den gitte strengen avkortes eller reduseres til bufferstørrelsen.

Eksempel 1: Program for å demonstrere snprintf()-funksjonen i C

La oss lage et program for å sjekke bufferstørrelsen og returnere antall tegn enter til bufferen ved å bruke snprintf()-funksjonen i C.

 /* create an example to use the snprintf function in c. */ #include #include int main () { // declare and initialize the char variable char *r = 'Javatpoint.com'; char buf[100]; // define the size of character type buffer /* use the snprintf() function to return the no. of character founded in the buffer area */ int n = snprintf (buf, 34, '%s 
', r); // 34 represents the size of buffer to store max characters // display the string stored in the buffer and count each character of the buffer area. printf (' The given string is: %s 
 Count the stored character: %d 
', buf, n); return 0; } 

Når vi kjører programmet ovenfor, produserer det gitt utdata på konsollskjermen.

 The given string is: Javatpoint.com Count the stored character: 16 

2ndhenrettelse

 The given string is: Javatpoint.com Count the stored character: -1 

Nå reduserer vi maks inputtegnet fra 34 til 14, og denne gangen returnerer det et negativt tall, noe som indikerer at bufferstørrelsen er mindre enn den gitte strengen.

Eksempel 2: Program for å bruke snprintf()-funksjonen i C

La oss lage et eksempel for å sette inn tegnet i bufferen og returnere fra det samme ved å bruke snprintf()-funksjonen i programmeringsspråket C.

verdien av java-strengen
 #include #include int main () { char buf[200]; // define the size of character type buffer int ret_val, buf_size = 55; char name[] = &apos;David&apos;; // define string int age = 19; // use the snprintf() function to return the no. of character found in buffer area ret_val = snprintf (buf, buf_size, &apos;Hello friend, My name is %s, and I am %d years old.&apos;, name, age); /* check ret_value should be greater than 0 and less than the size of the buffer (buf_size). */ if ( ret_val &gt; 0 &amp;&amp; ret_val <buf_size) { printf (' buffer is written successfully! 
 '); %s
', buf); no. of characters read: %d', ret_val); } else not completely filled or written. %s 
', the return value: 0; < pre> <p> <strong>When we execute the above program, it produces the given output on the console screen.</strong> </p> <pre> Buffer is written successfully! Hello friend, My name is David, and I am 19 years old. No. of characters read: 53 </pre> <p>In the above program, we declared the character type buffer buf[200], and the buf_size variable can insert the maximum characters is 55. If the given statement is in the defined range, the snprintf() function returns the total no. of characters read from the buffer. </p> <p> <strong>2<sup>nd</sup> execution</strong> </p> <pre> Buffer is not completely filled or written. Hello friend, My name is David and The return value: -1 </pre> <p>When we define the buf_size as 35, the given statement is automatically truncated by the snprintf() function that returns a negative number (-1) and displays &apos;Buffer is not completely filled or written&apos;.</p> <hr></buf_size)>

I programmet ovenfor erklærte vi tegntypen buffer buf[200], og buf_size-variabelen kan sette inn maksimalt antall tegn er 55. Hvis den gitte setningen er i det definerte området, returnerer snprintf()-funksjonen det totale antallet. av tegn lest fra bufferen.

2ndhenrettelse

 Buffer is not completely filled or written. Hello friend, My name is David and The return value: -1 

Når vi definerer buf_size som 35, blir den gitte setningen automatisk avkortet av snprintf()-funksjonen som returnerer et negativt tall (-1) og viser 'Buffer er ikke fullstendig fylt eller skrevet'.