IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Convertion char vers int


Sujet :

C

  1. #1
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut [Résolu] Convertion char vers int
    Bonjour,

    J'ai trouvé cela dans la FAQ qui permet de convertir une chaine de caractères en int:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    #include <stdio.h>
     
    char buf&#91;32&#93; = "15";
    int n;
     
    sscanf&#40;buf, "%d", &n&#41;;
    Mais comment puis-je faire pour convertir un caratère en int?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 56
    Points : 51
    Points
    51
    Par défaut
    Pour la conversion d'une chaîne de caractère vers un entier :

    int atoi(char s[]);

  3. #3
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut arf
    arf oui!!!! j'avais oublié!!!

    Merci beaucoup.

  4. #4
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut Ben non
    Ah ben non finalement ça va pas parce que atoi prend comme argument non pas un char mais un char*.

    il n'y a pas d'autre moyen que de passer par une chaine intermediaire dans laquelle je mettrais le caractère que je veux passer en int?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    56
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 56
    Points : 51
    Points
    51
    Par défaut
    *s devrait te suffir plutot que de passer par une chaîne intermédiare.

    Economisons les registres

  6. #6
    Membre éclairé
    Avatar de D[r]eadLock
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    504
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 504
    Points : 747
    Points
    747
    Par défaut
    - soit tu crees une chaine avec ton char et '\0'
    - soit tu fait juste char - '0' (si tu as uniquement un chiffre).
    - sinon tu recherche atoi ou strtol dans recherche avancee, il doit y avoir d'autre soluce (pour l'hexa, il doit bien y avoir des personnes qui ont du poster du code)

  7. #7
    Membre habitué
    Avatar de barthelv
    Inscrit en
    Mars 2003
    Messages
    267
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 267
    Points : 126
    Points
    126
    Par défaut atoi pour un char
    Par défaut...

    D[r]eadLock a sûrement raison. J'ai gardé mon idée première, je fais une copie de mon caractère dans une chaine puis j'utilise la fonction atoi pour récupérer la valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char a = "3";
    char&#91;2&#93; stTemp;
    int result;
     
    sprintf&#40;stTemp,"%c",a&#41;;
    result = atoi&#40;stTemp&#41;;
    Merci à tous.

  8. #8
    Futur Membre du Club
    Inscrit en
    Juillet 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juillet 2011
    Messages : 3
    Points : 5
    Points
    5
    Par défaut
    Pour la conversion d'un char en int, on a deux cas de figures:
    1 : Tu as une variable de type char qui contient un chiffre (ex: char a = '5') et tu veux le convertir en entier, voici la solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    char a = '5';
    char stTemp[2];
    int valeur_a_en_entier;
     
    sprintf(stTemp,"%c",a);
    valeur_a_en_entier = atoi(stTemp);
    printf("%d\n", valeur_a_en_entier);
    2 : Tu as une variable de type char qui contient n'importe quel caractère (ex: char x = 'x') et tu veux recupérer son code ASCII, voici la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    char x = 'x';
    int ascii_x = x;
    printf("%d\n", ascii_x);

    Citation Envoyé par barthelv Voir le message
    Par défaut...

    D[r]eadLock a sûrement raison. J'ai gardé mon idée première, je fais une copie de mon caractère dans une chaine puis j'utilise la fonction atoi pour récupérer la valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    char a = "3";
    char[2] stTemp;
    int result;
     
    sprintf(stTemp,"%c",a);
    result = atoi(stTemp);
    Merci à tous.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    Je pense qu'il a trouvé la solution... au cours de ces 8 dernières années.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion d'un *(?) char vers int
    Par theclem35 dans le forum Débuter
    Réponses: 3
    Dernier message: 02/06/2011, 15h08
  2. Convert char** en int sous c
    Par clave dans le forum Débuter
    Réponses: 12
    Dernier message: 03/08/2010, 18h33
  3. convertion char to int
    Par vinc9000 dans le forum Débuter
    Réponses: 4
    Dernier message: 18/11/2007, 14h42
  4. [convertion]String vers int
    Par laclac dans le forum Langage
    Réponses: 4
    Dernier message: 12/04/2007, 11h49
  5. Cast de char vers int
    Par Bernardtapis dans le forum C
    Réponses: 15
    Dernier message: 28/07/2006, 17h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo