English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriel de base du langage C

Contrôle de flux du langage C

Fonctions en C

Tableaux en C

Pointeurs en C

Chaînes de caractères en C

Structure de langage C

Fichier de langage C

Autres C

Manuel de référence du langage C

Utilisation et exemple de la fonction sprintf() de la bibliothèque C

Bibliothèque standard C - <stdio.h>

fonction de bibliothèque C int sprintf(char *str, const char *format, ...) envoyer une sortie formatée vers str la chaîne pointée.

Déclaration

Voici la déclaration de la fonction sprintf().

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

paramètre

  • str -- Ceci est un pointeur vers un tableau de caractères, qui stocke la chaîne de caractères C.
  • format -- Ceci est une chaîne, qui contient le texte à écrire dans la chaîne str. Elle peut contenir des balises de format intégrées, qui peuvent être remplacées par les valeurs spécifiées dans les paramètres supplémentaires suivants et formatées selon les besoins. Les attributs des balises de format sont %[flags][width][.precision][length]specifierci-dessous:
specifier (spécificateur)output
ccaractère
d ou ientier décimal signé
eutiliser le caractère e pour le format de nombre scientifique (compartiment et exposant)
Eutiliser le caractère E pour le format de nombre scientifique (compartiment et exposant)
fnombre flottant décimal
gchoisi automatiquement la représentation appropriée entre %e ou %f
Gchoisi automatiquement la représentation appropriée entre %E ou %f
ooctal signé
schaîne de caractères de caractères
uentier décimal sans signe
xentier hexadécimal sans signe
Xentier hexadécimal sans signe (lettres majuscules)
padresse de pointeur
naucune sortie
%caractère

flags (drapeaux)Description
-aligné à gauche dans la largeur du champ donné, par défaut il est aligné à droite (voir le sous-spicificateur width).
+force l'affichage d'un signe plus ou moins avant le résultat (+ ou -soit un nombre positif sera affiché devant + par défaut, seule une valeur négative sera affichée devant un - numéro.
(space)Si aucun symbole n'est écrit, un espace sera inséré devant la valeur.
#Lorsqu'il est utilisé avec les spécificateurs o, x ou X, les valeurs non nulles seront affichées avant respectivement 0, 0x ou 0X.
Lorsqu'il est utilisé avec e, E et f, il force l'output d'inclure un point décimal, même s'il n'y a pas de nombre après, le point décimal sera affiché. Par défaut, si il n'y a pas de nombre après, le point décimal ne sera pas affiché.
与 g 或 G 一起使用时,结果与使用 e 或 E 时相同,但是尾部的零不会被移除。
0Utilisé avec g ou G, le résultat est le même que celui utilisé avec e ou E, mais les zéros à la fin ne sont pas supprimés.

Placez des zéros (0) à gauche du nombre spécifié pour le remplissage, au lieu d'espaces (voir le sous-indicateur width).Description
width (largeur)(number)
*La largeur n'est pas spécifiée dans la chaîne de format, mais est placée avant le paramètre à formater en tant que paramètre supplémentaire de valeur entière. C'est le nombre minimum de caractères à sortir. Si la valeur sortie est plus courte que ce nombre, le résultat est rempli de espaces. Si la valeur sortie est plus longue que ce nombre, le résultat n'est pas tronqué.

.precision (exactitude)Description
.numberPour les désignateurs de nombres entiers (d, i, o, u, x, X) : l'exactitude indique le nombre minimum de chiffres à écrire pour le nombre. Si la valeur écrite est plus courte que ce nombre, le résultat est rempli de zéros avant. Si la valeur écrite est plus longue que ce nombre, le résultat n'est pas tronqué. Une exactitude de 0 signifie qu'aucun caractère n'est écrit.
Pour les désignateurs e, E et f : nombre de décimales à sortir après le point décimal.
Pour les désignateurs g et G : nombre maximum de chiffres significatifs à sortir.
Pour le type s : nombre maximum de caractères à sortir. Par défaut, tous les caractères sont sortis jusqu'à ce que le caractère de fin de chaîne vide soit rencontré.
Pour le type c : n'a aucun effet.
Lorsqu'aucune exactitude n'est spécifiée, la valeur par défaut est 1.
.*L'exactitude n'est pas spécifiée dans la chaîne de format, mais est placée avant le paramètre à formater en tant que paramètre supplémentaire de valeur entière. Si elle n'est pas spécifiée, elle est supposée être 0.

Longueur (length)Description
hLes paramètres sont interprétés comme des types de short ou de short unsigned (seulement pour les désignateurs de nombres entiers : i, d, o, u, x et X).
lLes paramètres sont interprétés comme des types de long ou de long unsigned, applicables aux désignateurs de nombres entiers (i, d, o, u, x et X) et au désignateur c (représentant un caractère large) et s (représentant une chaîne de caractères large).
LLes paramètres sont interprétés comme des types de double long (seulement pour les désignateurs de nombres flottants : e, E, f, g et G).
  • Paramètres supplémentaires -- Selon les différentes chaînes de format, la fonction peut nécessiter une série de paramètres supplémentaires, chaque paramètre contient une valeur à insérer, qui remplace chaque balise % spécifiée dans les paramètres de format. Le nombre de paramètres doit être égal au nombre de balises %.

Valeur de retour

Si le succès, il renvoie le nombre total de caractères écrits, sans inclure le caractère de fin de chaîne vide ajouté à la fin de la chaîne. Si l'échec, il renvoie un nombre négatif.

Exemple en ligne

L'exemple suivant démontre l'utilisation de la fonction sprintf().

#include <stdio.h>
#include <math.h>
int main()
{}}
   char str[80];
   sprintf(str, "La valeur de Pi = %f", M_PI);
   puts(str);
   return(0);
}

Compilons et exécutons le programme suivant, cela produira le résultat suivant :

La valeur de Pi = 3.141593

Bibliothèque standard C - <stdio.h>