В C есть способ преобразования значения ASCII, введенного как int, в соответствующий символ ASCII как char?
Преобразование ASCII-номера в символ ASCII в C
Ответ 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");