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

Résolu
Francky_ Messages postés 64 Statut Membre -  
Francky_ Messages postés 64 Statut Membre -
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

2 réponses

  1. BunoCS Messages postés 436 Date d'inscription   Statut Modérateur Dernière intervention   3 931
     
    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
    1. Francky_ Messages postés 64 Statut Membre 5
       
      Réponse claire,
      un grand merci, ça marche impec. ;)
      je mets en résolu
      0
  2. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    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