LINUX.ORG.RU

ord() in C


0

0

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

anonymous

Re: ord() in C

int char_num;

char char_char;

......

char_num = (int) char;

.....

char_char = (char) char_num

anonymous ()

Re:

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

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

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

Murr ★★ ()
Ответ на: Re: от Murr

Re:

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

Murr ★★ ()
Ответ на: Re: от Murr

Re: Re:

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

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

aa5779 ()
Ответ на: Re: Re: от aa5779

Re:

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

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

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

Murr ★★ ()
Ответ на: Re: от Murr

Re: Re:

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

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

dilmah ★★★★★ ()
Ответ на: Re: Re: от dilmah

Re:

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

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