Heim >Backend-Entwicklung >C++ >Wie überprüfe ich, ob ein C-String eine ganze Zahl darstellt?

Wie überprüfe ich, ob ein C-String eine ganze Zahl darstellt?

Susan Sarandon
Susan SarandonOriginal
2024-11-05 21:32:02457Durchsuche

How to Check If a C   String Represents an Integer?

Überprüfen, ob ein C-String eine Ganzzahl ist

In bestimmten Situationen, beispielsweise bei der Verarbeitung von Benutzereingaben, kann es notwendig sein, zwischen zu unterscheiden Zeichenfolgen, die Ganzzahlen darstellen, und solche, die dies nicht tun. Glücklicherweise gibt es in C mehrere Möglichkeiten, diese Aufgabe zu lösen.

Ein Ansatz besteht darin, die C-Funktion strtol zu nutzen, die eine Zeichenfolgendarstellung einer Ganzzahl in einen Ganzzahlwert umwandelt. Um strtol zu verwenden, können Sie eine einfache Funktion schreiben, die den Konvertierungsprozess kapselt:

<code class="cpp">inline bool isInteger(const std::string &s) {
  if (s.empty() || ((!isdigit(s[0])) && (s[0] != '-') && (s[0] != '+'))) return false;

  char *p;
  strtol(s.c_str(), &p, 10);

  return (*p == 0);
}</code>
  • Übersicht: Die Funktion prüft, ob die bereitgestellte Zeichenfolge s eine Ganzzahl darstellt.
  • Leere Zeichenfolgen: Es wird zunächst geprüft, ob die Zeichenfolge leer ist.
  • Führende Symbole: Es wird auch auf führende nichtstellige Zeichen geprüft, z. B. „ ' oder '-' und gibt false zurück, wenn sie nicht vorhanden sind (was auf eine Nicht-Ganzzahl hinweist).
  • Strtol-Konvertierung: Die Funktion verwendet die Strtol-Funktion, um die Konvertierung durchzuführen. Wenn strtol auf ein nicht-stelliges Zeichen stößt, weist es die Adresse dieses Zeichens dem Zeiger p zu.
  • Ergebnisauswertung: Wenn p nicht auf das Ende der Zeichenfolge zeigt (dargestellt durch Das Zeichen „“ bedeutet, dass strtol auf ein nicht-stelliges Zeichen gestoßen ist. In diesem Fall gibt die Funktion „false“ zurück, was darauf hinweist, dass s keine Ganzzahl ist.

Diese Funktion bietet eine zuverlässige Möglichkeit, zu bestimmen, ob eine bestimmte Zeichenfolge als Ganzzahl geparst werden kann. Indem Sie es in Ihren Code integrieren, können Sie Zeichenfolgen, die ganze Zahlen und Nicht-Ganzzahlen darstellen, angemessen verarbeiten.

Das obige ist der detaillierte Inhalt vonWie überprüfe ich, ob ein C-String eine ganze Zahl darstellt?. 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