Angabe der Anzahl der zu druckenden Zeichen mit printf()
Es stellt sich die Frage: Gibt es in printf() einen Mechanismus, der dies ermöglicht? Angabe der Anzahl der aus einer Zeichenfolge zu druckenden Zeichen? Man könnte dies mit der Angabe von Dezimalstellen in ganzen Zahlen vergleichen. Zum Beispiel:
printf ("Here are the first 8 chars: %s\n", "A string that is more than 8 chars");
Wünschenswerterweise sollte diese Zeile Folgendes ausgeben:
Here are the first 8 chars: A string
Lösung
Es gibt zwei Hauptansätze, um dies zu erreichen C.
Methode 1: Das Grundlegende Ansatz
printf ("Here are the first 8 chars: %.8s\n", "A string that is more than 8 chars");
Methode 2: Der vielseitige Ansatz
printf ("Here are the first %d chars: %.*s\n", 8, 8, "A string that is more than 8 chars");
Bei diesem Ansatz wird die Länge als int-Argument an printf() bereitgestellt . Das „*“ im Format wird als Anforderung interpretiert, die Länge aus einem Argument abzurufen.
Erweiterte Notation
Eine andere Notation kann verwendet werden:
printf ("Here are the first 8 chars: %*.*s\n", 8, 8, "A string that is more than 8 chars");
Analog zu „%8.8s“ ermöglicht diese Notation auch die Angabe von minimalen und maximalen Längen zur Laufzeit. Dies ist besonders nützlich in Szenarien wie:
printf("Data: %*.*s Other info: %d\n", minlen, maxlen, string, info);
Die POSIX-Spezifikation für printf() bietet eine detaillierte Erklärung dieser Mechanismen.
Das obige ist der detaillierte Inhalt vonWie lege ich mit printf() die Anzahl der aus einer Zeichenfolge zu druckenden Zeichen fest?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!