keselbingo
Messages postés20Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 avril 2005
-
5 avril 2005 à 14:50
keselbingo
Messages postés20Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 avril 2005
-
5 avril 2005 à 15:58
Bonjour à tous,
Il n'y a rien à dire, la fonction suivante fonctionne, elle me permet
de vérifier que l'entrée de l'utilisateur est bien composée uniquement
de chiffres.
if (*reps < '0' || *reps > '9')
Mais quelqu'un pourrait-il m'expliquer comment elle fonctionne ?
J'ai du mal à imaginer une comparaison entre une chaîne de caractères et un chiffre...
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 5 avril 2005 à 15:08
reps est surement un pointeur sur une chaîne de caractère du genre
char tab[32];
char* reps = tab;
pour accéder aux éléments de la chaîne (qui est un tableau) il y a plusieres façon :
faire une boucle sur i et testetr tab[i] ou incrémenter le pointeur et tester *reps (équivalent à reps[0];
*reps est donc le caractère en cours de test.
ensuite, les caractètes ne sont rien d'autre que des entiers associés à une tablea ASCII. pour vérifier que le caractère est un chiffer ('0', '1'...) il suffit de voir s'il est bien entre les valeurs numériques associés à '0' et '9'
keselbingo
Messages postés20Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 avril 2005 5 avril 2005 à 15:35
Ah ok, donc en gros ce morceau de code (au fait, oui "reps" est bien
une chaîne de caractères, c'est juste une variable de mon programme)
vérifie que *reps (le premier caractère de la chaîne "reps") soit bien
0, 1, 2, 3, 4, 5, 6, 7, 8 ou 9, c'est ça ?
keselbingo
Messages postés20Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 avril 2005 5 avril 2005 à 15:51
Ah, en fait non, je viens de tester en changeant les signes de sens, et
là ça me fait l'inverse (refus des valeurs numériques et acceptation
des lettres) !
keselbingo
Messages postés20Date d'inscriptiondimanche 3 avril 2005StatutMembreDernière intervention 9 avril 2005 5 avril 2005 à 15:58
Ah oui non ok merci, c'était juste que je m'étais trompé autre part (en
fait dans mon programme il boucle infiniment tant que la chaîne n'est
PAS un chiffre, et non pas tant qu'elle est un chiffre)...