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 :

Savoir l'équivalent d'un caractere en entier et inversement


Sujet :

C

  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    47
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 47
    Par défaut Savoir l'équivalent d'un caractere en entier et inversement
    Salut, je voudrai savoir comment on obtient l'equivalent d'un charactère en entier dans la table ASCII et inversement avec le langage "C". Merci d'avance.

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 474
    Par défaut
    Bonjour,

    Le type char est en soi un entier signé. Tu peux donc directement le manipuler comme tel. Si tu veux utiliser un int ordinaire, il te suffit de faire un transtypage :


  3. #3
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Août 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2008
    Messages : 38

  4. #4
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    142
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 142
    Par défaut
    Ou sinon tu peux te renseigner au niveau des fonction atoi et atol de string.h

  5. #5
    Membre confirmé
    Profil pro
    Lycéen
    Inscrit en
    Août 2008
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 31
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Août 2008
    Messages : 38
    Par défaut
    Ou sinon tu peux te renseigner au niveau des fonction atoi et atol de string.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define c2d(c) (tolower(c) - 'a')
    #define d2c(d) ((d) + '0')

  6. #6
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Bonjour,

    Le type char est en soi un entier signé.
    La norme ne spécifie pas si un char est signé ou pas.

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  7. #7
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Bonjour,

    Le type char est en soi un entier signé. Tu peux donc directement le manipuler comme tel. Si tu veux utiliser un int ordinaire, il te suffit de faire un transtypage :

    'A' est deja de type int en C (mais de type char en C++).

  8. #8
    Membre éprouvé
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    143
    Détails du profil
    Informations personnelles :
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 143
    Par défaut
    De toutes façons lorsque tu entre un caractère dans une variable de type 'char' il faut se mettre en tête que tu peux la manipuler comme bon te semble.

    Tu pourrais très bien envisager quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    char monCaractere;
    monCaractere='a';
    printf("Le caractère, lui même, est %c\n",monCaractere);
    printf("Le caractère, EN VALEUR, est %d, ou 0x%.2x",monCaractere, monCaractere);
    Ce qui te donnerais lors de l'exécution quelque chose du style :

    Le caractère, lui même, est a
    Le caractère, EN VALEUR, est 97, ou 0x61

    Le fait que tu utilises le type CHAR ne te force pas a utiliser des CARACTÈRES !
    Beaucoup de personnes le croit mais ce n'est pas le cas.

    Après tout au vu de la table ASCII n'importe quel caractère est une valeur DÉCIMALE !!

    Ha oui et tu pourrais donc très bien voir l'inverse comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("Le caractère correspondant à 0x61 est %c",0x61);
    Qui t'afficherais :
    Le caractère correspondant à 0x61 est a

    Bonne chance

  9. #9
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    Bonjour

    Citation Envoyé par rilou Voir le message
    Ha oui et tu pourrais donc très bien voir l'inverse comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    printf("Le caractère correspondant à 0x61 est %c",0x61);
    Qui t'afficherais :
    Le caractère correspondant à 0x61 est a
    A condition que ton charset est ASCII. Si tu travaillais avec un charset EBCDIC, tu aurais l'affichage suivant:
    Le caractère correspondant à 0x61 est /


Discussions similaires

  1. convertion de caractere en entier
    Par john93 dans le forum C++
    Réponses: 1
    Dernier message: 15/11/2007, 15h14
  2. convertir un caractere en entier
    Par bilou_2007 dans le forum C
    Réponses: 5
    Dernier message: 25/02/2007, 14h56
  3. [VB]Convertir une chaine de caractere en entier
    Par budylove dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 21/02/2006, 11h06
  4. d'un tableau de caracteres à un entier....
    Par felicity dans le forum C
    Réponses: 5
    Dernier message: 03/01/2006, 16h32
  5. Transfomer une Chaine de Caractere en Entier
    Par ThanosT dans le forum C
    Réponses: 14
    Dernier message: 05/10/2005, 19h56

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