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 :

conversion int---->char


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut conversion int---->char
    salut!
    j'ai un int, ( par exemple 3), et je voudrais le transformer en char, afin de l'utiliser ds une fonction qui utilise des char.
    Comment faire?
    Je suis qd meme surpris de voir aussi peu de sites ou ce cas est representé (pour ainsi dire aucun)
    Merci pour toute reponse :-)

    Philippe

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Si tu veux parler d'une conversion en chaîne (char*) alors voir la FAQ C++, sinon si c'est bien une conversion en char que tu veux, alors un simple static_cast suffit (les char sont des entiers, simplement plus petit que les int).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 228
    Points : 102
    Points
    102
    Par défaut pas trop comprite...
    Pourquoi tu veux faire ça ??
    Si ta fonction utilise des char en tant que de "chiffre" style


    un cast suffit et encore si ça se trouve ça passe avec un simple warning ( a voir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    int i = 10;
    char c = (char) i;
    mais attention un char c'est plus petit qu'un int :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int grand = 65 530;
    char poua = (int) grand;
    c'est mort !!
    char = 1 octet
    int = plus de un !

    EDIT : Humm loulou il repond plus vite que moi

  4. #4
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    oui je veux faire un char. J'ai moi aussi a faire (char)a, mais ca ne marche pas manikfestement...

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    en effet, si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    int main(int argc, char **argv){
     
      int a = 3;
     
      char b = (char)a;
      cout << "b: " << b << endl;
    }

    eh bien j'obtiens comme resultat:
    b:

    alors que je voudrais
    b: 3

  6. #6
    Membre averti Avatar de niglo
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    379
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 379
    Points : 383
    Points
    383
    Par défaut
    Citation Envoyé par andurand
    oui je veux faire un char. J'ai moi aussi a faire (char)a, mais ca ne marche pas manikfestement...

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    en effet, si je fais:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    int main(int argc, char **argv){
     
    int a = 3;
     
    char b = (char)a;
    cout << "b: " << b << endl;
    }

    eh bien j'obtiens comme resultat:
    b:

    alors que je voudrais
    b: 3

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 5
    Points : 1
    Points
    1
    Par défaut
    j'ai trouvé la reponse.

    pour convertir un int en char, faut pas oublier le '0' a la fin:

    int a= 3
    char b = char(a+'0');
    cout << "b: " << b << endl;

    ...

  9. #9
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    si j'ai bien compris ce que tu veux ceci devrait t'être utile:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    char int2char(int v)
    {
      char ret = '0';
      ret += (char)v;
      return ret;
    }
    ce code fonctionne à condition que v soit compris entre 0 et 9

  10. #10
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    eh bien j'obtiens comme resultat:
    b:
    Le caractère 3 est non imprimable (voir la table ASCII), normal que tu ne voies rien.

    Tu veux en fait convertir 3 en '3' par exemple, c'est ça ? '0' + a marchera certainement, mais il paraît que ce n'est pas portable.

  11. #11
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Juin 2004
    Messages
    68
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2004
    Messages : 68
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Loulou24
    eh bien j'obtiens comme resultat:
    b:
    Le caractère 3 est non imprimable (voir la table ASCII), normal que tu ne voies rien.

    Tu veux en fait convertir 3 en '3' par exemple, c'est ça ? '0' + a marchera certainement, mais il paraît que ce n'est pas portable.
    effectivement ce n'est pas vraiment portable comparaison ascii/ebcdic

    mais bon même en ebcdic les chiffres commencent par 0 et se suivent. En revanche une opération du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char c = 't';
    c = c - 'a' +'A';
    ne va peut être pas marché

Discussions similaires

  1. Conversion int en char
    Par Matthieu57b1 dans le forum Débuter
    Réponses: 2
    Dernier message: 01/02/2010, 16h41
  2. Conversion int en char *
    Par Trunks dans le forum C
    Réponses: 6
    Dernier message: 18/03/2006, 16h44
  3. Réponses: 2
    Dernier message: 01/07/2004, 11h36
  4. "Conversion" d'un char en int ou longueur
    Par Michaël dans le forum C
    Réponses: 6
    Dernier message: 15/08/2003, 11h40

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