Comment savoir si un caractère dans une chaîne est un nombre entier
Disons que je veux regarder le caractère à la position 10 dans une chaîne de caractères s.
s.à(10);
Quelle serait la meilleure façon de savoir si c'est un nombre?
OriginalL'auteur neuromancer | 2010-02-26
Vous devez vous connecter pour publier un commentaire.
Utilisation appel isdigit
Vous aurez besoin
pour assurer
isdigit
est disponible indépendamment de la mise en œuvre de la bibliothèque standard.Bien sûr, mais l'exemple est basé sur l'hypothèse que l'exigence était de caractères ascii. La page de a expliqué la solution si le programmeur nécessaire de paramètres régionaux spécifiques chiffres et je ne peux pas de deuxième deviner les programmeurs exigences.
Je comprends vos hypothèses, je n'ai tout simplement pas voir quoi que ce soit dans la question d'origine pour les justifier.
OriginalL'auteur Yacoby
Les autres réponses supposent que vous ne se soucient que les caractères suivants:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
. Si vous écrivez un logiciel qui peut fonctionner sur des paramètres régionaux qui utilisent d'autres chiffre systèmes, alors vous aurez envie d'utiliser la plus récentestd::isdigit
situé dans<locale>
: http://www.cplusplus.com/reference/std/locale/isdigit/Alors vous pourriez reconnaître les chiffres les chiffres:
४, ੬, ൦, ௫, ๓, ໒
OriginalL'auteur Bill
De ce qui suit va vous dire:
permettra de résoudre à 'true' si le caractère à la position 10 est un chiffre.
Vous aurez besoin d'inclure < ctype >.
En C++, les implémentations peuvent établir leurs en-têtes tels que un en-tête comprend un autre.
std::string
nécessaire<string>
qui peut très bien avoir apporté<ctype>
sur votre mise en œuvre. C'est une coincidence; vous ne pouvez pas compter sur cela.OriginalL'auteur Andrew
Utilisation appel isdigit:
OriginalL'auteur nos
Une autre façon est de vérifier la valeur ASCII de ce caractère
OriginalL'auteur IVlad