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
Patricia Arquetteoriginal
2024-11-03 04:18:30716parcourir

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>

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>

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!

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