Y a-t-il un moyen de convertir un caractère en une chaîne en C?
J'essaie de le faire comme ceci: P>
char *array;
array[0] = '1';
int x = atoi(array);
printf("%d",x);
6 Réponses :
Vous devez attribuer la mémoire à la chaîne, puis terminer NULL. ou, plus facile: P> char array[10];
array = "1";
int x = atoi(array);
printf("%d",x);
Si vous essayez de convertir un caractère numérique en int, utilisez simplement des caractères arithmétiques pour soustraire le code ASCII:
int x = myChar - '0';
printf("%d\n", x);
char c = '1';
int x = c - '0';
printf("%d",x);
Réponse la plus simple sans avoir à utiliser des tampons intermédiaires
Vous pouvez convertir un caractère en une chaîne via ce qui suit: se terminent par un caractère NUL, qui a la valeur 0. P> P>
Que diriez-vous:
char arr[] = "X";
int x;
arr[0] = '9';
x = atoi(arr);
printf("%d",x);
C'est plutôt excessif pour un seul char. Des variables supplémentaires, des tableaux, des terminateurs nuls sont tous inutiles.
Une déclaration de la fonction ATOI est (elle attend une "chaîne"): Si vous allez l'utiliser avec un seul caractère, vous obtiendrez une segmentation e. g. Essayez ceci: p>