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
756 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!

source:php.cn
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