Bonjour à tous
J'ai chercher à créer une fonction plus complète ressemblant à isdigit, mais perméttant de vérifier une chaine complète.
Grace à l'aide de plusieurs d'entre vous, voici le résultat : (obtenu il y a quelques semaines)
Jusqu'ici tout va pour le mieux... Mais voila, il s'avère que cette fonction me retourne un 1 quand tout va bien... Et je préfererai qu'elle me renvoi un 0 tout beau tout rond... ça me perméttrait de mieu m'y retrouver dans mon code général...
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
17
18
19
20
21
22
23
24
25
26 int all_digits(char *s) { /* verification qu'on ne va pas deferencer un pointeur nul */ if (s != NULL) { /*tant que le caractere a la position *s n'est pas '\0' *(fin de chaine) et que isdigit() renvoit * une valeur non-nulle, on passe au caractere suivant. */ while(*s && isdigit(*s)) { /* Incrementation du s */ s++; } /* Le '\0' terminal ou le '\n' a ete atteint, * donc isdigit() n'a jamais renvoye 0 * -> la chaine n'est composee que de caracteres numeriques. * * isdigit() a renvoye 0. * On n'a pas atteint le '\0' terminal, ni le '\n'. * -> la chaine contient au moins un caractere non-numerique.*/ return *s == '\0' || *s =='\n' ; } return 0; }
J'espère que vous pourrez m'aider au plus vite...
Cordialement et avec tous mes remerciements.
Partager