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". :mrgreen::king: Merci d'avance.
Version imprimable
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". :mrgreen::king: Merci d'avance.
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 :
Code:int i = (int)'A';
ouCode:a & 0xF7
Si je me souviens bien.Code:a & 0xFF
Ou sinon tu peux te renseigner au niveau des fonction atoi et atol de string.h ;)
Citation:
Ou sinon tu peux te renseigner au niveau des fonction atoi et atol de string.h
Code:
1
2 #define c2d(c) (tolower(c) - 'a') #define d2c(d) ((d) + '0')
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 :
Ce qui te donnerais lors de l'exécution quelque chose du style :Code:
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);
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 :
Qui t'afficherais :Code:
1
2 printf("Le caractère correspondant à 0x61 est %c",0x61);
Le caractère correspondant à 0x61 est a
Bonne chance ;)