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 :

[debutant] caractere <=> ascii


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut [debutant] caractere <=> ascii
    Bonjour,

    Comment convertir un caractere vers son code ascii et vice versa ?

    Merci d'avance

  2. #2
    Membre émérite
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Par défaut
    Salut

    La valeur ascii se trouve dans ta variable de type char tu peux y accéder via %c, %d, %x, etc.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    unsigned char lettre;
     
    /* Désolé pour le getchar, moi et la saisie de caractère ça fait 2 */
    lettre = getchar();
     
    printf("Caractere : %c\nCode ASCII (decimal) : %d\nCode ASCII (hexa) : %x", lettre, lettre, lettre);

  3. #3
    Inactif
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Citation Envoyé par Freed0
    Salut

    La valeur ascii se trouve dans ta variable de type char tu peux y accéder via %c, %d, %x, etc.

    Par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    unsigned char lettre;
     
    /* Désolé pour le getchar, moi et la saisie de caractère ça fait 2 */
    lettre = getchar();
     
    printf("Caractere : %c\nCode ASCII (decimal) : %d\nCode ASCII (hexa) : %x", lettre, lettre, lettre);
    Je veux que le code ascii soit enregistrer vers un int .

    Exp:
    int nbr = codeAscii("A");
    char chr = caract(65);

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2007
    Messages : 41
    Par défaut
    En c, il n'y a pas de difference entre les characteres et les entiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int valeurAscii = 'A';

  5. #5
    Membre émérite
    Inscrit en
    Janvier 2005
    Messages
    711
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 711
    Par défaut
    en fait, si tu veux faire des calculs avec le code ascii, tu n'as a la limite meme pas besoin de le convertir ! ces expressions ont du sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char c='R';
    c=c+2-'z';

  6. #6
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 395
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 395
    Par défaut
    Ici, des hypothèses sont faites sur les valeurs :
    Citation Envoyé par jobherzt
    en fait, si tu veux faire des calculs avec le code ascii, tu n'as a la limite meme pas besoin de le convertir ! ces expressions ont du sens :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char c='R';
    c=c+2-'z';
    Sans oublier toutes les apparitions du nombre 65 dans le thread.

    Et je voulais surtout mettre l'accent sur le fait que ça ne marche pas forcément en ASCII étendu, principalement à cause des soucis de signe.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  7. #7
    Inactif
    Inscrit en
    Février 2007
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 25
    Par défaut
    Citation Envoyé par atnnn
    En c, il n'y a pas de difference entre les characteres et les entiers.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    int valeurAscii = 'A';
    Je veux affecter le code ascii d'un caracter vers une variable de type entier et pas afficher son code ascii.

    exp:
    int nbr = codeAscii("A");
    char chr = caract(65);

    printf("Le code ascii de %c est %d", chr, nbr);
    et non pas
    printf("Le code ascii de %c est %d", chr, chr);

  8. #8
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Bah oui mais justement c'est ça le truc en C. Le %c %d ne joue que sur la représentation à l'écran. Pas besoin d'une fonction spéciale pour manipuler les codes ASCII des caractères. Pour info, un char est codé sur 8 bits et un int sur 32 bits sur x86 je crois (processeur 32 bits). Mettre la valeur d'un char dans un entier ça ne sert strictement à rien puisque les deux sont manipulables de la même façon. La table ASCII tient juste sur 8 bits par contre.
    Quand tu dis je veux ça mais pas ça ça, en fait ce sont deux constructions identiques

  9. #9
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 116
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 116
    Par défaut
    Ce n'est pas du tout difficile.

    Un petit exemple qui donne la lettre en fonction du code ascii :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char caractere=70;
    printf("Au code ascii %d correspond la lettre %c\n",caractere,caractere);
    Et inversement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    char caractere='w';
    printf("Au caractere %c correspond le code ASCII %d\n",caractere,caractere);

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

Discussions similaires

  1. Urls et caractere autres que ASCII
    Par Shirraz dans le forum Référencement
    Réponses: 6
    Dernier message: 31/05/2009, 09h41
  2. [debutant]Transformation String to ASCII
    Par noname_971 dans le forum Java ME
    Réponses: 1
    Dernier message: 16/05/2008, 14h39
  3. caracteres speciaux (non ASCII)
    Par yvesall dans le forum C
    Réponses: 8
    Dernier message: 17/09/2007, 10h39
  4. [Débutant][String] Remplacez les caractères speciaux
    Par paf15 dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 27/04/2004, 22h39
  5. [Delphi] Application "console" et caractères ASCII
    Par Yorys dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 31/07/2003, 09h50

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