web-dev-qa-db-fra.com

Convertir ASCII nombre en ASCII Caractère en C

En C, existe-t-il un moyen de convertir une valeur ASCII tapée en entier dans le caractère ASCII en tant que caractère?)

16
Anonymous

Vous pouvez affecter directement int à char.

int a = 65;
char c = a;
printf("%c", c);

En fait, cela fonctionnera également.

printf("%c", a);  // assuming a is in valid range
21
taskinoor

Si i est le int, alors

char c = i;

en fait un char. Vous voudrez peut-être ajouter une vérification que la valeur est <128 s'il provient d'une source non fiable. Ceci est mieux fait avec isascii de <ctype.h>, si disponible sur votre système (voir le commentaire de @Steve Jessop à cette réponse).

16
Fred Foo

Si le nombre est stocké dans une chaîne (ce qu'il serait s'il était tapé par un utilisateur), vous pouvez utiliser atoi() pour le convertir en entier.

Un entier peut être affecté directement à un caractère. Un personnage est différent principalement parce qu'il est interprété et utilisé.

char c = atoi("61");
2
Jonathan Wood