Exercice langage C : Procédures
Rédigé par GC Team, Publié le 21 Février 2012, Mise à jour le Samedi, 17 Décembre 2022 21:39
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) ;
#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 ;
}