logo

snprintf() funktion i C

I det här avsnittet kommer vi att diskutera funktionen snprintf() i programmeringsspråket C. snprintf är en fördefinierad biblioteksfunktion i rubrikfilen stdio.h, som omdirigerar utdata från standardfunktionen printf() till andra buffertar.

Funktionen snprint() används för att formatera de givna strängarna till en serie tecken eller värden i buffertområdet. Funktionen snprintf() innehåller ett 'n'-argument som representerar det maximala antalet tecken, inklusive noll-tecknet, som lagras i buffertområdet.

Funktionen snprintf returnerar också antalet tecken som infogas eller skrivs till bufferten. Dessa tecken returneras eller visas av printf()-funktionen i print-satsen eller tecken i stdout-huvudfilen.

snprintf() funktion i C

Obs: Funktionen snprintf() infogar ett nolltecken i slutet av den resulterande utdata som också räknas som storleken på bufferten. Dessutom är bufferten en array som endast lagrar teckentypselement, inte i strängtypen.

Syntax för funktionen snprintf() i C

Följande är syntaxen för funktionen snprintf() i programmeringsspråket c.

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

Parametrar:

str : Det är en arraybuffert av teckentyp.

storlek : den definierar det maximala antalet tecken som kan lagras i bufferten.

formatera : I C-språket definierar strängen ett format som innehåller samma typ av specifikationer som funktionen printf() definierar i rubrikfilen stdio.h.

…: Det är en valfri (…) parameter eller argument.

csv-fil läs java

Returvärden:

Funktionen snprintf() returnerar antalet tecken eller värden som har skrivits eller lagrats för en tillräckligt stor buffert utan att inkludera det null-avslutande tecknet. Och om de skrivna tecknen är större än buffertstorleken, returnerar det ett negativt värde. Och om buffertstorleken är för liten kommer den givna strängen att trunkeras eller reduceras till buffertstorleken.

fördelarna med instagram för personligt bruk

Exempel 1: Program för att demonstrera funktionen snprintf() i C

Låt oss skapa ett program för att kontrollera buffertstorleken och returnera antalet tecken enter till bufferten med funktionen snprintf() 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 kör programmet ovan producerar det den givna utdatan på konsolskärmen.

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

2ndavrättning

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

Nu minskar vi maxindatatecknet från 34 till 14, och den här gången returnerar det ett negativt tal, vilket indikerar att buffertstorleken är mindre än den givna strängen.

cp kommando i linux

Exempel 2: Program för att använda funktionen snprintf() i C

Låt oss skapa ett exempel för att infoga tecknet i bufferten och återgå från densamma med funktionen snprintf() i programmeringsspråket C.

 #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 ovan deklarerade vi teckentypen buffer buf[200], och variabeln buf_size kan infoga det maximala antalet tecken är 55. Om den givna satsen är inom det definierade intervallet, returnerar funktionen snprintf() det totala antalet. tecken som läses från bufferten.

2ndavrättning

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

När vi definierar buf_size som 35, trunkeras den givna satsen automatiskt av funktionen snprintf() som returnerar ett negativt tal (-1) och visar 'Bufferten är inte helt fylld eller skriven'.