Как собрать непредопределенный набор символов в C? - PullRequest
0 голосов
/ 09 октября 2011

У меня есть упражнение из учебника сразу после зацикливания и использования значений символов (это означает, что я не могу использовать массивы и строки).

В соответствии с упражнением, я (пользователь) должен заставить пользователя ввести набор символов

Например, «IamaDinosaur», а затем найдите букву с самым высоким значением ASCII.

Как мне зациклить scanf(), чтобы позволить пользователю вводить значения char, пока пользователь не нажмет ввод? И как тогда сравниваются значения?

Ответы [ 2 ]

2 голосов
/ 09 октября 2011

Вы могли бы использовать getc, может быть?

int ch;
int max = EOF;
while ((ch = getc(stdin)) != EOF && ch != '\n')
    if (max < ch)
        max = ch;

Очевидно, вы могли бы пойти по маршруту scanf("%c").

1 голос
/ 10 октября 2011

Если вы не можете использовать getch(), то, как полагают люди, вы, конечно, можете использовать scanf() и просто продолжать сканирование до тех пор, пока оно не даст сбой, или не прочитает новую строку:

char max = 0, here;
while(scanf("%c", &here) == 1 && here != '\n')
    if(here > max)
        max = here;
printf("max='%c'\n", max);
...