Travail à Faire:
Ecrire une procédure qui lit une chaîne de caractères et l'interprète comme un entier positif dans la base décimale. On écrira 2 fonctions :
La fonction chaine2entier qui récupère une chaîne de caractère et retourne un entier.
Prototype : int chaine2entier(char *)
La fonction estentier qui récupère un caractère et retourne 0 s’il ne correspond pas à un chiffre 1 s’il correspond à un chiffre.
Prototype : int estentier(char) ;
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 27 28 29 30 31 32 33 34 35 36 37 38 39 |
#include int estentier(char) ; int chaine2entier(char *) ; main() { /* Déclarations */ char CH[100]; /* chaîne numérique à convertir */ long N; /* résultat numérique */ printf("Entrez un nombre entier et positif : "); gets(CH); printf("%s\n",CH) ; N = chaine2entier(CH) ; if(N<0) printf("%s ne représente pas correctement un entier positif.\n", CH); else printf("La chaine %s a pour valeur %d\n" ,CH,N) ; } int chaine2entier(char *CH) { int I; int N = 0 ; int OK = 1 ; for (I=0; OK && CH[I]; I++) if (estentier(CH[I])) N = N*10 + (CH[I]-'0'); else OK=0; if (OK) return N ; else return -1 ; } int estentier(char c) { if ((c>='0')&&(c<='9')) return 1 ; else return 0 ; } |