Existe-t-il un moyen de convertir un int
en un char
?
Edit :
Voici le problème avec la réponse de Jeff Johnson (elle affiche des caractères bizarres) :
Existe-t-il un moyen de convertir un int
en un char
?
Edit :
Voici le problème avec la réponse de Jeff Johnson (elle affiche des caractères bizarres) :
// an example knowing that 32 is the value for a space character
int i = 32;
char c = (char)i;
// an example where you want to turn a single digit number into a single char
int i = 1 + (int)'0'; // we want the number one turned into a character, adding the ascii value of 0 starts us off at zero and then we add the single digit. This takes advantage of the fact that 0 to 9 are sequential in the ascii table.
char c = (char)i; // now we have a character that is the single digit representation of the number.
En réponse à votre modification, utilisez simplement printf et spécifiez un entier :
int i = 10;
printf("%d", i);
La raison en est que le 0 représente le chiffre 0. Caractère ASCII Le "0" n'est pas à zéro, mais à 48.
C'est pourquoi Réponse de Jared fonctionnera : char dig = (char)(((int)'0')+i);
Il prend "0" (qui est 48), et y ajoute votre nombre. 0 + 48 est 48, donc 0 devient "0". Si vous convertissez un 1, ce sera 48 + 1, ou 49, ce qui correspond à "1" sur la carte ASCII.
Cela ne fonctionne que pour les chiffres de 0 à 9, car "10" n'est pas un caractère ASCII, mais plutôt "1" suivi d'un "0".
Essayez de chercher sprintf . De plus, pour les nombres dont la résolution est inférieure à 8 bits ou 256, vous pouvez les convertir explicitement de int en char.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.