Bonjour,
Je souhaite tester si une chaine est numérique en C++ ?
Par avance, merci
Bonjour,
Je souhaite tester si une chaine est numérique en C++ ?
Par avance, merci
Utiliser les expressions régulières ?
"Il est plus facile de décomposer un problème en ses éléments, forcément plus simples, que de le traiter en sa totalité." (R. Descartes)
Freelance iOS
Salut,
Il y a une plusieurs possibilités différentes selon la situation et les objectifs finaux...
Tu peux, par exemple, utiliser utiliser la fonction membre find_first_not_of de la classe string qui renvoie la position du premier caractère n'entrant pas dans la chaine fournie en paramètre, std::npos si aucun caractère n'a été trouvé (typiquement avec, comme chaine, "0123456789")
Tu peux tenter une conversion basée sur les flux de conversion
Il y a des possibilités basées sur les expressions régulières (renseigne toi sur boost::regex, par exemple)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 std::stringstream ss; ss<<lachaine; int num) if(!ss>>num) { pas numérique } /* si plusieurs nombres sont attendus */ while(ss>>num) { /* si tu veux récupérer les nombres, fait le ici */ } if(!ss.str().empty) { /*il y a eu des caractères non convertis */ }
Et j'en oublie certainement...
Je te rappellerais donc que la règle première d'un forum est "aide nous à t'aider" :
Plus tu nous donnera de précisions sur tes besoins ou ta situation, plus nous serons en mesure d'apporter la solution la plus adéquate à ta question
A méditer: La solution la plus simple est toujours la moins compliquée
Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
Compiler Gcc sous windows avec MinGW
Coder efficacement en C++ : dans les bacs le 17 février 2014
mon tout nouveau blog
Ressources proposées par 3DArchi - Les fonctions virtuelles en C++ - Cours et tutoriels C++ - FAQ C++ - Forum C++.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager