LINUX.ORG.RU

ord() in C


0

0

народб подскажите, с помощью чего в С по номеру символа в ASCII получить символ и наоборот (номер символа по символу)

anonymous

int char_num;

char char_char;

......

char_num = (int) char;

.....

char_char = (char) char_num

anonymous
()

В C нет разницы между символьным и числовым представлением для char.

Все это корректно:
char c = 'a';
char d = 10;

printf ("%d %d\n", (int)c, (int)d);
printf ("%c %c\n", c, d);

Murr ★★
()
Ответ на: комментарий от Murr

Вернее сказать, при использовании одного в контексте другого используется неявное приведение. Так 10 (int) приводится к '\0xa' (char).

Murr ★★
()
Ответ на: комментарий от Murr

Я бы так не сказал. Просто char в С -- это целочисленный тип, такой же как int. И все целочисленные типы в С совместимы по присваиванию. Заметим в скобках, что символьные константы имеют тип int, а не char.

Другое дело, что при вводе/выводе можно char выводить как символ, а можно как число: fputchar(ch) vs printf("%i", ch) итп

aa5779
()
Ответ на: комментарий от aa5779

>Просто char в С -- это целочисленный тип, такой же как int.
С этим я не спорил. :)

>И все целочисленные типы в С совместимы по присваиванию. Заметим в скобках, что символьные константы имеют тип int, а не char.
Это я и написал в пред. сообщении. ;)

>Другое дело, что при вводе/выводе можно char выводить как символ, а можно как число
Насчет корректности использования %i для вывода char я сомневаюсь.

Murr ★★
()
Ответ на: комментарий от Murr

> Насчет корректности использования %i для вывода char я сомневаюсь.

имхо корректно -- ...-аргументы претерпевают естественное приведение -- float к double, char к int.

dilmah ★★★★★
()
Ответ на: комментарий от dilmah

Естественные/неестественные, но в любом случае выводим мы не char, а int, ч.т.д.

Murr ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.