Heim >Backend-Entwicklung >C++ >Wie kann festgestellt werden, ob ein C-String oder ein Zeichen* nur Ziffern enthält?
So überprüfen Sie, ob ein C-String oder ein Zeichen* ausschließlich aus Ziffern besteht
Frage:
Ist es in C möglich zu bestimmen, ob eine bestimmte Zeichenfolge oder ein bestimmtes Zeichen* nur numerische Zeichen enthält? Wenn ja, wie finden wir das erste nichtstellige Zeichen und gelten ähnliche Methoden für beide Typen?
Antwort:
Ja, dafür gibt es mehrere Techniken Beurteilen Sie, ob eine Zeichenfolge oder ein Zeichen* ausschließlich aus Ziffern besteht. Hier sind zwei mögliche Ansätze:
Diese Methode prüft, ob zum ersten Mal ein nichtstelliges Zeichen in der Datei vorkommt Eingang. Wenn das Ergebnis std::string::npos ist, bedeutet dies, dass alle Zeichen Ziffern sind.
<code class="cpp">bool is_digits(const std::string &str) { return str.find_first_not_of("0123456789") == std::string::npos; }</code>
Diese Methode verwendet den std::all_of-Algorithmus, um zu testen, ob jedes Zeichen in der Eingabe eine bestimmte Bedingung erfüllt, in diesem Fall, ob es eine Ziffer ist.
<code class="cpp">bool is_digits(const std::string &str) { return std::all_of(str.begin(), str.end(), ::isdigit); }</code>
Anwendung auf beide Typen:
Die oben besprochenen Methoden können sowohl mit den Typen std::string als auch char verwendet werden. Bei der Arbeit mit char ist es jedoch wichtig, eine ordnungsgemäße Konvertierung oder Initialisierung sicherzustellen, um die Konsistenz der Datendarstellung aufrechtzuerhalten und unbeabsichtigtes Verhalten zu verhindern.
Das obige ist der detaillierte Inhalt vonWie kann festgestellt werden, ob ein C-String oder ein Zeichen* nur Ziffern enthält?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!