Saltar al contenido

Función de biblioteca C – sprintf ()

septiembre 23, 2021

Descripción

La función de la biblioteca C int sprintf (char * str, const char * formato, …) envía la salida formateada a una cadena apuntada, por str.

Declaración

A continuación se muestra la declaración de la función sprintf ().

int sprintf(char *str, const char *format, ...)

Parámetros

  • str – Este es el puntero a una matriz de elementos char donde se almacena la cadena C resultante.

  • formato – Esta es la cadena que contiene el texto que se escribirá en el búfer. Opcionalmente, puede contener etiquetas de formato incrustadas que se reemplazan por los valores especificados en argumentos adicionales posteriores y se formatean según se solicite. Prototipo de etiquetas de formato: %[flags][width][.precision][length]especificador, como se explica a continuación:

No Señor. Especificador y salida
1

C

Personaje

2

do yo

Entero decimal con signo

3

mi

Notación científica (mantisa / exponente) usando el carácter e

4

mi

Notación científica (mantisa / exponente) usando el carácter E

5

F

Coma flotante decimal

6

gramo

Utiliza el más corto de% e o% f.

7

GRAMO

Utiliza el más corto de% E o% f

8

o

Octal firmado

9

s

Cadena de caracteres

10

tu

Entero decimal sin signo

11

X

Entero hexadecimal sin signo

12

X

Entero hexadecimal sin signo (letras mayúsculas)

13

pag

Dirección del puntero

14

norte

Nada impreso

15

%

Personaje

No Señor. Banderas y descripción
1

Justificar a la izquierda dentro del ancho de campo dado; La justificación a la derecha es la predeterminada (consulte el subespecificador de ancho).

2

+

Obliga a preceder el resultado con un signo más o menos (+ o -) incluso para números positivos. De forma predeterminada, solo los números negativos están precedidos por un signo -ve.

3

(espacio)

Si no se va a escribir ningún signo, se inserta un espacio en blanco antes del valor.

4

#

Usado con especificadores o, x o X, el valor está precedido por 0, 0x o 0X respectivamente para valores diferentes de cero. Usado con e, E yf, obliga a la salida escrita a contener un punto decimal incluso si no le siguen ningún dígito. De forma predeterminada, si no sigue ningún dígito, no se escribe ningún punto decimal. Si se usa con go G, el resultado es el mismo que con e o E, pero los ceros finales no se eliminan.

5

0

Rellena a la izquierda el número con ceros (0) en lugar de espacios, donde se especifica el relleno (consulte el subespecificador de ancho).

No Señor. Ancho y descripción
1

(número)

Número mínimo de caracteres a imprimir. Si el valor a imprimir es más corto que este número, el resultado se rellena con espacios en blanco. El valor no se trunca incluso si el resultado es mayor.

2

*

El ancho no se especifica en la cadena de formato, sino como un argumento de valor entero adicional que precede al argumento que debe formatearse.

No Señor. .precisión y descripción
1

.número

Para especificadores de enteros (d, i, o, u, x, X), la precisión especifica el número mínimo de dígitos que se escribirán. Si el valor que se va a escribir es más corto que este número, el resultado se rellena con ceros a la izquierda. El valor no se trunca incluso si el resultado es más largo. Una precisión de 0 significa que no se escribe ningún carácter para el valor 0. Para los especificadores e, E y f: este es el número de dígitos que se imprimirán después del punto decimal. Para especificadores gy G: este es el número máximo de dígitos significativos que se imprimirán. Para s: este es el número máximo de caracteres que se pueden imprimir. De forma predeterminada, todos los caracteres se imprimen hasta que se encuentra el carácter nulo final. Para el tipo c, no tiene ningún efecto. Cuando no se especifica precisión, el valor predeterminado es 1. Si el período se especifica sin un valor explícito de precisión, se asume 0.

2

. *

La precisión no se especifica en la cadena de formato, sino como un argumento de valor entero adicional que precede al argumento que debe formatearse.

No Señor. Longitud y descripción
1

h

El argumento se interpreta como un int corto o un int corto sin signo (solo se aplica a especificadores de enteros: i, d, o, u, x y X).

2

l

El argumento se interpreta como un int largo o un int largo sin signo para los especificadores de enteros (i, d, o, u, x y X), y como un carácter ancho o una cadena de caracteres amplia para los especificadores c y s.

3

L

El argumento se interpreta como un doble largo (solo se aplica a especificadores de coma flotante: e, E, f, gy G).

  • argumentos adicionales – Dependiendo de la cadena de formato, la función puede esperar una secuencia de argumentos adicionales, cada uno con un valor que se insertará en lugar de cada% -tag especificado en el parámetro de formato (si corresponde). Debe haber el mismo número de estos argumentos que el número de% -tags que esperan un valor.

Valor devuelto

Si tiene éxito, se devuelve el número total de caracteres escritos excluyendo el carácter nulo agregado al final de la cadena; de lo contrario, se devuelve un número negativo en caso de falla.

Ejemplo

El siguiente ejemplo muestra el uso de la función sprintf ().

#include <stdio.h>
#include <math.h>

int main () {
   char str[80];

   sprintf(str, "Value of Pi = %f", M_PI);
   puts(str);
   
   return(0);
}

Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:

Value of Pi = 3.141593

stdio_h.htm

close