Ü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 &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 &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>
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!