Heim >Backend-Entwicklung >C++ >Wie kann festgestellt werden, ob ein String- oder Zeichenarray in C nur Ziffern enthält?

Wie kann festgestellt werden, ob ein String- oder Zeichenarray in C nur Ziffern enthält?

Susan Sarandon
Susan SarandonOriginal
2024-11-02 17:21:03307Durchsuche

How to Determine if a String or Character Array Contains Only Digits in C  ?

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!

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