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 ?

Comment puis-je vérifier si une chaîne ou un char* ne contient que des chiffres en C ?

Patricia Arquette
Libérer: 2024-11-03 04:18:30
original
793 Les gens l'ont consulté

How Can I Verify if a String or char* Contains Only Digits in 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 &amp;str)
{
    return str.find_first_not_of("0123456789") == std::string::npos;
}</code>
Copier après la connexion

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 &amp;str)
{
    return std::all_of(str.begin(), str.end(), ::isdigit); // C++11
}</code>
Copier après la connexion

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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal