Bonjour,
J'ai trouvé cela dans la FAQ qui permet de convertir une chaine de caractères en int:
Mais comment puis-je faire pour convertir un caratère en int?Code:
1
2
3
4
5
6 #include <stdio.h> char buf[32] = "15"; int n; sscanf(buf, "%d", &n);
Version imprimable
Bonjour,
J'ai trouvé cela dans la FAQ qui permet de convertir une chaine de caractères en int:
Mais comment puis-je faire pour convertir un caratère en int?Code:
1
2
3
4
5
6 #include <stdio.h> char buf[32] = "15"; int n; sscanf(buf, "%d", &n);
Pour la conversion d'une chaîne de caractère vers un entier :
int atoi(char s[]);
arf oui!!!! j'avais oublié!!! :arf:
Merci beaucoup.
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?
*s devrait te suffir plutot que de passer par une chaîne intermédiare.
Economisons les registres
- 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)
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:
Merci à tous.Code:
1
2
3
4
5
6 char a = "3"; char[2] stTemp; int result; sprintf(stTemp,"%c",a); result = atoi(stTemp);
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:
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:
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);
Code:
1
2
3 char x = 'x'; int ascii_x = x; printf("%d\n", ascii_x);
Je pense qu'il a trouvé la solution... au cours de ces 8 dernières années. :lol: