Erkennen numerischer Zeichenfolgen in C
Die Bestimmung, ob eine Zeichenfolge einen numerischen Wert darstellt, kann in verschiedenen Programmierszenarien eine allgegenwärtige Anforderung sein. Im Zusammenhang mit der Analyse von Datendateien ist beispielsweise die Identifizierung numerischer Zeilen von entscheidender Bedeutung. Obwohl es verschiedene Methoden gibt, konzentriert sich dieser Artikel auf zwei effiziente Ansätze zur Lösung dieser Aufgabe im Bereich C.
Iterativer Ansatz
Die einfachste und unkomplizierteste Methode beinhaltet die Iteration durch jedes Zeichen in der Zeichenfolge. Wenn ein Zeichen keine Ziffer ist, gilt die Zeichenfolge als nicht numerisch.
bool is_number(const std::string& s) { for (char c : s) { if (!std::isdigit(c)) { return false; } } return true; }
find_if von C 11
Moderne C-Befürworter bevorzugen möglicherweise die Verwendung von find_if für eine prägnante Implementierung . Dieser Ansatz nutzt Lambda-Ausdrücke, um nach dem ersten nichtstelligen Zeichen zu suchen, und gibt „false“ zurück, wenn es gefunden wird, und „true“, wenn keines vorhanden ist.
bool is_number(const std::string& s) { return std::find_if(s.begin(), s.end(), [](unsigned char c) { return !std::isdigit(c); }) == s.end(); }
Vorbehalte
Das ist wichtig Beachten Sie, dass beide Techniken nur positive ganze Zahlen voraussetzen. Für den Umgang mit negativen ganzen Zahlen oder Brüchen wird eine umfassendere Lösung empfohlen, möglicherweise unter Verwendung von Bibliotheken von Drittanbietern wie Boost oder C 20
Das obige ist der detaillierte Inhalt vonWie kann ich numerische Zeichenfolgen in C effizient erkennen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!