Heim > Artikel > Backend-Entwicklung > Wie kann festgestellt werden, ob ein String- oder Zeichenarray in C nur Ziffern enthält?
Bestimmen der Numerizität von Zeichenfolgen und Zeichenarrays
In C wird überprüft, ob ein Zeichenfolgen- oder Zeichenarray (char*) ausschließlich numerische Zeichen enthält eine allgemeine Anforderung. Sehen wir uns zwei zuverlässige Methoden an:
Methode 1: find_first_not_of()
Diese Methode nutzt die Funktion find_first_not_of(), die nach dem ersten Vorkommen eines nichtstelligen Zeichens sucht . Wenn kein solches Zeichen gefunden wird, wird std::string::npos zurückgegeben, was bedeutet, dass nur Ziffern vorhanden sind:
<code class="cpp">bool is_digits(const std::string &str) { return str.find_first_not_of("0123456789") == std::string::npos; }</code>
Methode 2: std::all_of()
Diese Methode nutzt die Funktion std::all_of(), die prüft, ob alle Elemente in einem Bereich ein bestimmtes Prädikat erfüllen. In diesem Fall lautet das Prädikat ::isdigit, das für numerische Zeichen „true“ zurückgibt:
<code class="cpp">bool is_digits(const std::string &str) { return std::all_of(str.begin(), str.end(), ::isdigit); // C++11 }</code>
Vergleich für Zeichenfolgen und Zeichenarrays
Beide Methoden sind gleichermaßen anwendbar sowohl für Zeichenfolgen als auch für Zeichenarrays. Zeichenarrays erfordern jedoch eine explizite Konvertierung in Zeichenfolgen, bevor die std::string-Mitgliedsfunktionen verwendet werden können.
Das obige ist der detaillierte Inhalt vonWie kann festgestellt werden, ob ein String- oder Zeichenarray in C nur Ziffern enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!