Anpassen der Zeichenfolgenkürzung in printf()
Abfrage:
Ist eine Steuerung möglich? die Anzahl der Zeichen, die mit printf() aus einer Zeichenfolge gedruckt werden, ähnlich der Angabe von Dezimalstellen für ganze Zahlen?
Bedenken Sie:
printf("Hier sind die ersten 8 Zeichen: %sn", "Eine Zeichenfolge, die mehr als 8 Zeichen umfasst");
Erwartete Ausgabe: Hier sind die ersten 8 Zeichen: A Zeichenfolge
Lösung:
Es gibt zwei Hauptmethoden, um diese Anpassung zu erreichen:
Methode 1:
printf("Hier sind die ersten 8 Zeichen: %.8sn", "Eine Zeichenfolge, die länger als 8 ist chars");
Methode 2:
printf("Hier sind die ersten %d Zeichen: %.*sn", 8, 8, "Eine Zeichenfolge, die ist mehr als 8 Zeichen");
Bei der zweiten Methode wird ein ganzzahliges Argument an printf() übergeben, das die Länge angibt. Das „*“ im Format fordert printf() auf, die Länge aus dem begleitenden Argument zu ermitteln.
Es gibt eine alternative Schreibweise:
printf("Hier sind die ersten 8 Zeichen: %*. *sn", 8, 8, „Eine Zeichenfolge mit mehr als 8 Zeichen“);
Diese Notation ähnelt der „%8.8s“ Format, ermöglicht aber die dynamische Angabe von minimalen und maximalen Längen, besonders nützlich in Szenarios wie:
printf("Data: %*.*s Other info: %dn", minlen, maxlen, string, info);
Die POSIX-Spezifikation für printf() bietet eine detaillierte Erklärung dieser Mechanismen.
Das obige ist der detaillierte Inhalt vonWie kann ich die String-Kürzung in printf() anpassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!