Maison >développement back-end >C++ >Comment puis-je vérifier si une chaîne ou un char* ne contient que des chiffres en C ?
Vérification des chaînes contenant uniquement des chiffres en C
Déterminer si une chaîne ou un caractère* contient uniquement des chiffres est une tâche courante en programmation. Cet article explore deux approches efficaces :
1. En utilisant find_first_not_of
Cette méthode parcourt la chaîne, recherchant le premier caractère non numérique. Si aucun n'est trouvé (find_first_not_of("0123456789") renvoie std::string::npos), la chaîne est considérée comme composée uniquement de chiffres :
<code class="cpp">bool is_digits(const std::string &str) { return str.find_first_not_of("0123456789") == std::string::npos; }</code>
2. Utilisation de std::all_of (à partir de C 11)
Cette méthode utilise un prédicat pour vérifier chaque caractère de la chaîne. Dans ce cas, le prédicat est ::isdigit, qui renvoie vrai pour les caractères numériques :
<code class="cpp">bool is_digits(const std::string &str) { return std::all_of(str.begin(), str.end(), ::isdigit); // C++11 }</code>
Les fonctions s'appliquent-elles à la fois aux chaînes et aux caractères ?
Oui, ces fonctions peuvent être utilisées à la fois pour std::string et char* avec des modifications mineures. Pour char*, le constructeur std::string peut être utilisé pour convertir le char* en std::string:
<code class="cpp">bool is_digits(const char *str) { std::string str_copy(str); return is_digits(str_copy); }</code>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!