Преобразование ASCII-номера в символ ASCII в C

В C есть способ преобразования значения ASCII, введенного как int, в соответствующий символ ASCII как char?

Ответ 1

Вы можете напрямую привязать int к char.

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

На самом деле это тоже сработает.

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

Ответ 2

Если i является int, то

char c = i;

делает его char. Возможно, вы захотите добавить проверку, что значение <128, если оно исходит от ненадежного источника. Это лучше всего сделать с isascii от <ctype.h>, если оно доступно в вашей системе (см. Комментарий @Steve Jessop к этому ответу).

Ответ 3

Если номер хранится в строке (которая была бы введена пользователем), вы можете использовать atoi(), чтобы преобразовать его в целое число.

Целое число может быть назначено непосредственно символу. Персонаж отличается главным образом тем, что он интерпретируется и используется.

char c = atoi("61");