La función snprintf() se define en el archivo de encabezado <stdio.h> y se usa para almacenar la string especificada hasta una longitud especificada en el formato especificado.
Características del método snprintf():
- La función snprintf() formatea y almacena una serie de caracteres y valores en el búfer de array.
- La función snprintf() acepta un argumento ‘n’, que indica el número máximo de caracteres (incluido el final del carácter nulo) que se escribirán en el búfer.
- La función snprintf() se utiliza para redirigir la salida de la función printf() a un búfer.
- El snprintf() también devuelve los caracteres numéricos que se suponía que debían escribirse en el búfer (excluyendo el terminador nulo), independientemente del valor de ‘n’ pasado.
- Entonces, solo cuando el valor devuelto no es negativo y es menor que ‘n’, la string se ha escrito completamente como se esperaba.
Sintaxis: La sintaxis del método snprintf() es:
int snprintf(char *str, size_t size, const char *format, …);
Parámetros:
- *str : es un búfer.
- tamaño: es el número máximo de bytes (caracteres) que se escribirán en el búfer.
- formato: string C que contiene una string de formato que sigue las mismas especificaciones que el formato en printf
- …: los argumentos opcionales (…) son solo los formatos de string como (“%d”, myint) como se ve en printf.
Valor de retorno:
- El número de caracteres que se habrían escrito en el búfer, si ‘n’ hubiera sido lo suficientemente grande. El carácter nulo de terminación no se cuenta.
- Si se produce un error de codificación, se devuelve un número negativo.
A continuación se muestra un ejemplo para ilustrar el funcionamiento del método snprintf():
Ejemplo 1:
C
// C program to demonstrate snprintf() #include <stdio.h> int main() { char buffer[50]; char* s = "geeksforgeeks"; // Counting the character and storing // in buffer using snprintf printf("Writing %s onto buffer" " with capacity 6", s); int j = snprintf(buffer, 6, "%s\n", s); // Print the string stored in buffer and // character count printf("\nString written on " "buffer = %s", buffer); printf("\nValue returned by " "snprintf() method = %d\n", j); return 0; }
Producción
Writing geeksforgeeks onto buffer with capacity 6 String written on buffer = geeks Value returned by snprintf() method = 14
Ejemplo 2:
C
// C program to demonstrate snprintf() #include <stdio.h> int main() { char buffer[50]; // join two or more strings char* str1 = "quick"; char* str2 = "brown"; char* str3 = "lazy"; int max_len = sizeof buffer; int j = snprintf(buffer, max_len, "The %s %s fox jumped over the %s dog.", str1, str2, str3); printf("\nThe number of bytes printed to 'buffer' " "(excluding the null terminator) is %d\n", j); if (j >= max_len) fputs("Buffer length exceeded; string truncated", stderr); puts("Joined string:"); puts(buffer); return 0; }
Producción
The number of bytes printed to 'buffer' (excluding the null terminator) is 45 Joined string: The quick brown fox jumped over the lazy dog.
Publicación traducida automáticamente
Artículo escrito por rajasethupathi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA