Fonction atoi() [Résolu]

Signaler
Messages postés
23
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
28 mai 2009
-
piche32
Messages postés
23
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
28 mai 2009
-
Bonjour,
J'aurais besoin d'une explication sur la fonction atoi().
Je récupere un caractere grâce à un getchar() et j'aimerais avoir la valeur décimal de son code ASCII.

Voici le code que j'ai fais:

char=getchar() //récupération du caractere
int i = atoi( char );

Si, par exemple, mon caractere est 2 (code ASCII 0x32) est que i vaudrat 2 ou 32?

Et si le code ASCII contient une lettre, par exemple 0x6A pour j, que vaudra i?

merci d'avance pour vos réponses.

7 réponses

Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Salut
Ta fonction atoi retournera 2 pour le carachère ASCII 0x32.
Si tu lui mets une lettre ou un caractère invalide, la fonction retourne 0.

A+

____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
308
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
27 octobre 2011

1°) Pourquoi t'essaierais pas toi même pour voir ce que ca fait
2°) Ton i n'aura aucune valeur et t'auras certainement une belle erreur car il faut passer un tableau de char à la fonction atoi
3°) La proposition 3
Messages postés
23
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
28 mai 2009

Merci beaucoup pour vos réponses
a+
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Oui bien sure, la fonction atoi() attend une chaine de caractère terminer par un zéro terminale
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
23
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
28 mai 2009

C'est quoi que tu appel un zero terminal?
Apres ce que je veux "convertir" il vaut mettre un 0?
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
6
Un 0 terminal est un caractère qui permet de savoir si la chaine est fini ou pas. Quand tu fais qqchose comme ça:
strcpy(MaChaine,"Bonjour");
MaChaine[7] = = '\0'  //Fin de chaine
Donc pour ta fonction atoi: si tu fais cela:
atoi('1'), c'est incorrecte car '1' signifie juste le caractère 1 et la fonction atoi va chercher le zero terminale et si tu fais ça: atoi("1") c'est correcte. car "1" signifie la chaine de caractère.
A+
____________________________________________________________________________
Mon site internet :  
http://ImAnalyse.free.fr
Messages postés
23
Date d'inscription
mercredi 1 octobre 2008
Statut
Membre
Dernière intervention
28 mai 2009

OK je comprend.
Merci beaucoup a toi pour cette précision.
A+