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

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

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 00:56:29706Durchsuche

How to Determine if a C   String or char* Contains Only Digits?

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:

  1. find_first_not_of() Methode:

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>
  1. std::all_of() Methode (C 11 und höher):

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!

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