Pb conversion langage C...

elodie -  
 marvinrouge -
Bonjour

Comment faire pour convertir un caractere en entier en langage C ?
exemple :
'2' est un caractere, on le veut en entier.

Merci
<au plaisir de vous recrire>

4 réponses

  1. marvinrouge
     
    Si tu veux convertir un caractère (par exemple 't') en son code asci tu fais

    char c = 't'; // ou une autre valeur
    int code = (int)c;

    Si tu veux convertir un caractère qui réprésente un entier en sa valeur (par exemple '2' et 2)tu fais

    char c = '2'; // ou une autre valeur
    char zero = '0'; // ne pas changer cette valeur
    int code = (int)c - (int)zero;

    marvinrouge
    1
  2. Grafitos
     
    Bah tu fais:
    char t;
    int nombre;
    switch(t)
    case "1":nombre=1;break;
    ....

    :)
    0
  3. Nettogrof Messages postés 522 Statut Membre 672
     
    La technique du switch case, est valable, mais trop longue.

    En voici une plus simple:

    char lettreChiffre='5';
    int nombre;

    nombre=atoi(lettreChiffre);

    je suis presque sûr, mais demande confirmation

    Nettogrof tseb era seiromem emoS
    0
  4. gugull Messages postés 1 Statut Membre
     
    Bonjour à tous,
    ayant perdu quelques heures avant de trouver une solution palliative temporaire, je me retourne vers des passionnés de la programmation en C. :-)

    Mon problème est le suivant : je cherche à obtenir à partir du code d'un caractére ASCII dans la table du même nom, le caractère correspondant afin de le placer dans un tableau de caractère.
    Je recherche désespérement une fonction réalisant l'opération inverse de ATOI.

    Merci d'avance pour les éventuelle réponses.
    0
    1. Ravachol Messages postés 568 Statut Membre 120
       
      Salut,
      si le petit bout de code ci-dessous correspond bien à ce que tu veux faire la conversion est faite implicitement par le compilo en C

      int main(int argc, char *argv[])
      {
      char car[3];

      car[0] = 65;
      car[1] = 66;
      car[2] = 67;

      // Petite vérif on affiche bien A, B, C
      printf("%c, %c, %c\n", car[0], car[1], car[2]);
      }

      Pour la fonction inverse de "atoi" c'est "strtol"

      A++

      Ni l'ignorance n'est défaut d'esprit,
      ni le savoir n'est preuve de génie. LUC DE CLAPIERS
      0