Heim >Backend-Entwicklung >C++ >Wie kann ich überprüfen, ob ein String oder ein Zeichen* in C nur Ziffern enthält?

Wie kann ich überprüfen, ob ein String oder ein Zeichen* in C nur Ziffern enthält?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-03 04:18:30716Durchsuche

How Can I Verify if a String or char* Contains Only Digits in C  ?

Überprüfung auf Nur-Ziffern-Strings in C

Bestimmen, ob ein String oder ein Zeichen* nur Ziffern enthält, ist eine häufige Aufgabe in der Programmierung. In diesem Artikel werden zwei effiziente Ansätze untersucht:

1. Mit find_first_not_of

Diese Methode durchläuft die Zeichenfolge und sucht nach dem ersten Nicht-Ziffer-Zeichen. Wenn keine gefunden wird (find_first_not_of("0123456789") gibt std::string::npos zurück), wird die Zeichenfolge als nur Ziffern betrachtet:

<code class="cpp">bool is_digits(const std::string &amp;str)
{
    return str.find_first_not_of("0123456789") == std::string::npos;
}</code>

2. Verwendung von std::all_of (ab C 11)

Diese Methode verwendet ein Prädikat, um jedes Zeichen der Zeichenfolge zu überprüfen. In diesem Fall lautet das Prädikat ::isdigit, das für Ziffernzeichen true zurückgibt:

<code class="cpp">bool is_digits(const std::string &amp;str)
{
    return std::all_of(str.begin(), str.end(), ::isdigit); // C++11
}</code>

Gelten die Funktionen sowohl für Strings als auch für char*?

Ja, diese Funktionen können mit geringfügigen Änderungen sowohl für std::string als auch für char* verwendet werden. Für char* kann der Konstruktor std::string verwendet werden, um char* in einen std::string:

<code class="cpp">bool is_digits(const char *str)
{
    std::string str_copy(str);
    return is_digits(str_copy);
}</code>
umzuwandeln

Das obige ist der detaillierte Inhalt vonWie kann ich überprüfen, ob ein String oder ein Zeichen* 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