logo

snprintf() funkcija C

Šiame skyriuje aptarsime snprintf() funkciją C programavimo kalba. snprintf yra iš anksto nustatyta stdio.h antraštės failo bibliotekos funkcija, kuri peradresuoja standartinės funkcijos printf() išvestį į kitus buferius.

Funkcija snprint() naudojama suformatuoti nurodytas eilutes į simbolių ar reikšmių seką buferio srityje. Funkcija snprintf() turi „n“ argumentą, nurodantį didžiausią buferio srityje saugomų simbolių skaičių, įskaitant nulinį simbolį.

string substring java

Funkcija snprintf taip pat grąžina į buferį įterptų arba įrašytų simbolių skaičių. Tačiau šiuos simbolius grąžina arba rodo funkcija printf() spausdinimo sakinyje arba simboliai stdout antraštės faile.

snprintf() funkcija C

Pastaba: Funkcija snprintf() įterpia nulinį simbolį gautos išvesties pabaigoje, kuri taip pat skaičiuojama kaip buferio dydis. Be to, buferis yra masyvas, kuriame saugomi tik simbolio tipo elementai, o ne eilutės tipo.

Funkcijos snprintf () sintaksė C

Toliau pateikiama funkcijos snprintf () sintaksė c programavimo kalba.

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

Parametrai:

g : Tai simbolių tipo masyvo buferis.

dydis : apibrėžia maksimalų simbolių skaičių, kurį galima laikyti buferyje.

formatu : C kalba eilutė apibrėžia formatą, kuriame yra to paties tipo specifikacijos, kaip ir funkcija printf() apibrėžia stdio.h antraštės faile.

…: tai neprivalomas (…) parametras arba argumentas.

jei kitaip teiginys java

Grąžinimo vertės:

Funkcija snprintf() grąžina simbolių arba reikšmių, kurios buvo įrašytos arba saugomos pakankamai dideliam buferiui, skaičių, neįtraukiant nulinio pabaigos simbolio. Ir jei parašyti simboliai yra didesni nei buferio dydis, tai grąžina neigiamą reikšmę. Ir jei buferio dydis yra per mažas, nurodyta eilutė bus sutrumpinta arba sumažinta iki buferio dydžio.

eilutę į int java

1 pavyzdys: programa, skirta parodyti snprintf() funkciją C

Sukurkime programą, skirtą patikrinti buferio dydį ir grąžinti simbolių skaičių į buferį naudodami snprintf() funkciją 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; } 

Kai vykdome aukščiau pateiktą programą, ji konsolės ekrane sukuria nurodytą išvestį.

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

2ndegzekucija

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

Dabar sumažiname maksimalų įvesties simbolį nuo 34 iki 14 ir šį kartą jis grąžina neigiamą skaičių, nurodantį, kad buferio dydis yra mažesnis už nurodytą eilutę.

knn algoritmas

2 pavyzdys: programa, skirta naudoti snprintf() funkciją C

Sukurkime pavyzdį, kaip įterpti simbolį į buferį ir grįžti iš to, naudodami funkciją snprintf() C programavimo kalba.

 #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)>

Aukščiau pateiktoje programoje mes paskelbėme simbolių tipą buferio buf[200], o kintamasis buf_size gali įterpti maksimalų simbolių skaičių yra 55. Jei pateiktas sakinys yra apibrėžtame diapazone, funkcija snprintf() grąžina bendrą Nr. simbolių, nuskaitytų iš buferio.

2ndegzekucija

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

Kai apibrėžiame buf_size kaip 35, pateiktas teiginys automatiškai sutrumpinamas funkcija snprintf (), kuri grąžina neigiamą skaičių (-1) ir rodo „Buferis nėra visiškai užpildytas arba įrašytas“.