Maison >développement back-end >C++ >Comment déterminer si une chaîne C ou un char* ne contient que des chiffres ?

Comment déterminer si une chaîne C ou un char* ne contient que des chiffres ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-03 00:56:29709parcourir

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

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 :

  1. Méthode find_first_not_of() :

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>
  1. Std::all_of() Méthode (C 11 et supérieur) :

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn