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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
| #include <stdio.h>
#include <stdlib.h>
long strtoint(const char *chaine);
int main(int argc, char *argv[])
{
int chiffre = 0 ;
char monchiffre[13] = {0};//De 0 a 11 caracteres
//affectation...
monchiffre[0] = '3' ;monchiffre[1] = '4' ;monchiffre[2] = '5' ;
chiffre = strtoint(monchiffre);//Appel de la procedure 'strtoint'
printf("Chiffre de la chaine: %s est :%d\n",monchiffre,chiffre) ;
system("PAUSE");
return 0;
}
long strtoint(const char *chaine)
{
long longueurChaine = strlen(chaine);//longueur de la chaine
//cptinterne = compteur qui décrémente
long compteur = 0 , cptinterne = longueurChaine-1 , chiffre = 0 ;
double base = 10 ;
for (compteur = 0 ; compteur <= longueurChaine-1 ; compteur++)
{
switch (chaine[compteur])
{
case '0':
cptinterne-- ;
break;
case '1':
chiffre += 1 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '2':
chiffre += 2 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '3':
chiffre += 3 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '4':
chiffre += 4 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '5':
chiffre += 5 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '6':
chiffre += 6 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '7':
chiffre += 7 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '8':
chiffre += 8 * (pow(base, cptinterne));
cptinterne-- ;
break;
case '9':
chiffre += 9 * (pow(base, cptinterne));
cptinterne-- ;
break;
default:
chiffre = 0 ;
chaine = "" ;
break;
}
}
return chiffre ;
} |
Partager