Heim >Backend-Entwicklung >C++ >Wie lege ich mit printf() die Anzahl der aus einer Zeichenfolge zu druckenden Zeichen fest?

Wie lege ich mit printf() die Anzahl der aus einer Zeichenfolge zu druckenden Zeichen fest?

Linda Hamilton
Linda HamiltonOriginal
2024-11-30 14:57:12725Durchsuche

How to Specify the Number of Characters to Print from a String using printf()?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn