Caractere '1' '2' '3' etc ..

Résolu/Fermé
Francky_ Messages postés 59 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 7 juillet 2014 - 12 oct. 2013 à 11:50
Francky_ Messages postés 59 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 7 juillet 2014 - 12 oct. 2013 à 16:29
Bonjour,

Je déclare 2 caracteres
char a = '4';
char b = '2';

je fais un cast pour récupérer le caractere '4' en 4 et '2' en 2
int x=(int)a;
int y=(int)b;

Ensuite je fais une opération sur mes 2 entiers
int c=x/y;

Et enfin j'aimerais afficher le caractère correspondant au chiffre du résultat.
J'ai essayé de faire :
int resultat = c - '0';
printf("%c",resultat);

Dans l'exemple ça devrait m'afficher le caractere '2' mais j'aimerais aussi que ça marche pour les autres opérateurs - + / *

merci

A voir également:

2 réponses

BunoCS Messages postés 15496 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 24 décembre 2024 3 912
12 oct. 2013 à 13:41
Hello,
je fais un cast pour récupérer le caractere '4' en 4 et '2' en 2
int x=(int)a;
int y=(int)b;
x et y ne vont pas contenir 4 et 2 mais plutôt 52 et 50, qui correspondent aux codes ASCII des caractères '4' et '2'

Si tu veux récupérer la valeur numérique, il faut faire ceci:

int x=(int)(a - '0'); // ou bien (int)a - 48 (48 étant le code ASCII de '0')
int y=(int)(b - '0');

A noter que
int c=x/y;
est une division entière...
0
Francky_ Messages postés 59 Date d'inscription mardi 23 juillet 2013 Statut Membre Dernière intervention 7 juillet 2014 5
12 oct. 2013 à 16:29
Réponse claire,
un grand merci, ça marche impec. ;)
je mets en résolu
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
12 oct. 2013 à 16:00
Bonjour,

D'ailleurs le cast est inutile.
Pour info '0' n'est pas un char mais un int. Donc tu peux directement faire int a='4';
Et pour récupérer le chiffre 4 : int x=a-'0'; toujours sans cast.
Cdlt,
0