Преобразовать число ASCII в символ ASCII в C - PullRequest
16 голосов
/ 12 июля 2011

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

Ответы [ 3 ]

21 голосов
/ 12 июля 2011

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

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

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

printf("%c", a);  // assuming a is in valid range
16 голосов
/ 12 июля 2011

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

char c = i;

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

2 голосов
/ 12 июля 2011

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

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

char c = atoi("61");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...