Comment vérifier si une chaîne C ou un caractère* se compose exclusivement de chiffres
Question :
En C , est-il possible de déterminer si une chaîne ou un char* donné contient uniquement des caractères numériques ? Si oui, comment pouvons-nous trouver le premier caractère non numérique et des méthodes similaires s'appliquent-elles aux deux types ?
Réponse :
Oui, il existe plusieurs techniques pour évaluer si une chaîne ou un caractère* est constitué uniquement de chiffres. Voici deux approches potentielles :
Cette méthode vérifie la première occurrence d'un caractère autre qu'un chiffre dans le saisir. Si le résultat est std::string::npos, cela implique que tous les caractères sont des chiffres.
<code class="cpp">bool is_digits(const std::string &str) { return str.find_first_not_of("0123456789") == std::string::npos; }</code>
Cette méthode utilise l'algorithme std::all_of pour tester si chaque caractère de l'entrée répond à une condition particulière, dans ce cas, s'il s'agit d'un chiffre.
<code class="cpp">bool is_digits(const std::string &str) { return std::all_of(str.begin(), str.end(), ::isdigit); }</code>
Application aux deux types :
Les méthodes décrites ci-dessus peuvent être utilisées avec les types std::string et char. Cependant, il est crucial d'assurer une conversion ou une initialisation appropriée lorsque vous travaillez avec char pour maintenir la cohérence dans la représentation des données et éviter tout comportement involontaire.
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!