C-Bibliotheksfunktionsprintf()
C-Standardbibliothek - <stdio.h>
Beschreibung
C-Bibliotheksfunktionenint sprintf(char *str, const char *format, ...)Sendet formatierte Ausgabe anstrdie Zeichenkette, auf die gezeigt wird.
Deklaration
Nachfolgend finden Sie die Deklaration der Funktion sprintf().
int sprintf(char *str, const char *format, ...)
Parameter
- str-- Dies ist ein Zeiger auf ein Zeichenarray, das die C-Zeichenkette speichert.
- format-- Dies ist die Zeichenkette, die den in die Zeichenkette str zu schreibenden Text enthält. Sie kann eingebettete Format-Tags enthalten, die durch die in nachfolgenden zusätzlichen Argumenten angegebenen Werte ersetzt und nach Bedarf formatiert werden können. Die Attribute der Format-Tags sind: %[flags][width][.precision][length]specifier, wobei die Details wie folgt erläutert werden:
| Spezifizierer (specifier) | Ausgabe |
|---|---|
| c | Zeichen |
| d oder i | vorzeichenbehaftete Dezimal-Ganzzahl |
| e | Wissenschaftliche Notation unter Verwendung des Zeichens e (Mantisse und Exponent) |
| E | Wissenschaftliche Notation unter Verwendung des Zeichens E (Mantisse und Exponent) |
| f | Dezimal-Gleitkommazahl |
| g | Automatische Auswahl der passenden Darstellung aus %e oder %f |
| G | Automatische Auswahl der passenden Darstellung aus %E oder %f |
| o | Vorzeichenbehaftetes Oktal |
| s | Zeichenkette |
| u | vorzeichenlose Dezimal-Ganzzahl |
| x | vorzeichenlose Hexadezimal-Ganzzahl |
| X | Vorzeichenlose Hexadezimal-Ganzzahl (Großbuchstaben) |
| p | Zeigeradresse |
| n | Keine Ausgabe |
| % | Zeichen |
| Flags | Beschreibung |
|---|---|
| - | Linksbündige Ausrichtung innerhalb der angegebenen Feldbreite; rechtsbündig ist die Standardeinstellung (siehe Unterbezeichner für die Breite). |
| + | Erzwingt, dass dem Ergebnis ein Plus- oder Minuszeichen (+ oder -) vorangestellt wird, d. h. positive Zahlen zeigen ein +-Zeichen. Standardmäßig wird nur negativen Zahlen ein --Zeichen vorangestellt. |
| (Leerzeichen) | Wenn kein Vorzeichen geschrieben wird, wird ein Leerzeichen vor den Wert eingefügt. |
| # | Bei Verwendung mit den Formatbezeichnern o, x oder X werden Nicht-Null-Werte jeweils mit 0, 0x bzw. 0X eingeleitet. Bei Verwendung mit e, E und f enthält die Ausgabe zwangsweise einen Dezimalpunkt, selbst wenn keine Ziffern darauf folgen. Standardmäßig wird der Dezimalpunkt nicht angezeigt, wenn keine Ziffern darauf folgen. Bei Verwendung mit g oder G ist das Ergebnis dasselbe wie bei e oder E, aber nachfolgende Nullen werden nicht entfernt. |
| 0 | Setzen Sie Nullen (0) links neben die Zahl für die angegebene Auffüllung anstelle von Leerzeichen (siehe den Breiten-Unterbezeichner). |
| width | Beschreibung |
|---|---|
| (Zahl) | Die minimale Anzahl auszugebender Zeichen. Wenn der Ausgabewert kürzer als diese Anzahl ist, wird das Ergebnis mit Leerzeichen aufgefüllt. Wenn der Ausgabewert länger als diese Anzahl ist, wird das Ergebnis nicht abgeschnitten. |
| * | Die Breite wird nicht im Formatstring angegeben, sondern als zusätzliches ganzzahliges Wertargument bereitgestellt, das vor dem zu formatierenden Argument platziert wird. |
| .precision | Beschreibung |
|---|---|
| .number | Für Ganzzahl-Spezifizierer (d, i, o, u, x, X): Die Genauigkeit gibt die minimale Anzahl der zu schreibenden Ziffern an. Wenn der geschriebene Wert kürzer als diese Anzahl ist, wird das Ergebnis mit führenden Nullen aufgefüllt. Wenn der geschriebene Wert länger als diese Anzahl ist, wird das Ergebnis nicht abgeschnitten. Eine Genauigkeit von 0 bedeutet, dass keine Zeichen geschrieben werden. Für die Spezifizierer e, E und f: die Anzahl der Ziffern, die nach dem Dezimalpunkt ausgegeben werden. Für die Spezifizierer g und G: die maximale Anzahl signifikanter Ziffern, die ausgegeben werden. Für s: die maximale Anzahl Zeichen, die ausgegeben werden. Standardmäßig werden alle Zeichen ausgegeben, bis das abschließende Nullzeichen angetroffen wird. Für den Typ c: hat keine Auswirkung. Wenn keine Genauigkeit angegeben ist, ist der Standardwert 1. Wenn sie ohne expliziten Wert angegeben wird, wird 0 angenommen. |
| .* | Die Genauigkeit wird nicht in der Formatzeichenfolge angegeben, sondern als zusätzliches ganzzahliges Wertargument bereitgestellt, das vor dem zu formatierenden Argument platziert wird. |
| length | Beschreibung |
|---|---|
| h | Das Argument wird als short int oder unsigned short int interpretiert (gilt nur für Ganzzahl-Formatbezeichner: i, d, o, u, x und X). |
| l | Das Argument wird als long int oder unsigned long int interpretiert, anwendbar auf Ganzzahl-Formatbezeichner (i, d, o, u, x und X) sowie auf die Formatbezeichner c (steht für ein Breitzeichen) und s (steht für eine Breitzeichen-Zeichenkette). |
| L | Das Argument wird als long double interpretiert (gilt nur für Gleitkomma-Formatbezeichner: e, E, f, g und G). |
- Zusätzliche Argumente-- Abhängig von der Formatzeichenfolge kann die Funktion eine Reihe zusätzlicher Argumente erfordern, wobei jedes einen einzufügenden Wert enthält und jedes im Formatparameter angegebene %-Tag ersetzt. Die Anzahl der Argumente sollte der Anzahl der %-Tags entsprechen.
Rückgabewert
Bei Erfolg wird die Gesamtzahl der geschriebenen Zeichen zurückgegeben, mit Ausnahme des Nullzeichens, das am Ende der Zeichenkette angehängt wird. Bei Fehlschlag wird eine negative Zahl zurückgegeben.
Beispiel
Das folgende Beispiel demonstriert die Verwendung der Funktion sprintf().
Beispiel
#include <stdio.h>
#include <math.h>
int main()
{
char str[80];
sprintf(str, "Der Wert von Pi = %f", M_PI);
puts(str);
return(0);
}
#include <math.h>
int main()
{
char str[80];
sprintf(str, "Der Wert von Pi = %f", M_PI);
puts(str);
return(0);
}
Lassen Sie uns das obige Programm kompilieren und ausführen, was das folgende Ergebnis erzeugt:
Pi 的值 = 3.141593Weitere Erweiterungen