Prüfung auf Ziffern in C-Strings und Zeichenzeigern
Die Bestimmung, ob ein String- oder Zeichenzeiger nur numerische Zeichen enthält, ist eine häufige Aufgabe in der Programmierung . C bietet mehrere Möglichkeiten, diese Prüfung durchzuführen, die sowohl auf std::string als auch auf char* anwendbar sind.
String-basierte Methode
Um zu prüfen, ob ein std::string Enthält nur Ziffern, können Sie die Funktion find_first_not_of() verwenden. Diese Funktion gibt die Position des ersten Zeichens zurück, das nicht mit dem angegebenen Zeichensatz übereinstimmt. Wenn die Funktion std::string::npos zurückgibt, zeigt dies an, dass kein nicht-stelliges Zeichen gefunden wurde und die Zeichenfolge daher nur Ziffern enthält.
<code class="cpp">bool is_digits(const std::string &str) { return str.find_first_not_of("0123456789") == std::string::npos; }</code>
Char-Pointer-basierte Methode
Für einen Zeichenzeiger können Sie die Funktion std::all_of() zusammen mit der Funktion ::isdigit verwenden, um zu überprüfen, ob alle Zeichen im Zeiger Ziffern sind. Die Funktion ::isdigit gibt true zurück, wenn das Zeichen eine Ziffer (0-9) ist, andernfalls false.
<code class="cpp">bool is_digits(const char* str) { return std::all_of(str, str + strlen(str), ::isdigit); // C++11 }</code>
Beachten Sie, dass beide Methoden davon ausgehen, dass die Eingabezeichenfolge oder der Zeichenzeiger eine Folge von ASCII-Zeichen ist . Wenn Nicht-ASCII-Zeichen erwartet werden, können entsprechende Anpassungen erforderlich sein.
Das obige ist der detaillierte Inhalt vonWie können Sie Ziffern in C-Strings und Char-Zeigern überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!