如何在C中收集一组非预定字符?

时间:2011-10-09 18:24:45

标签: c loops character

我在循环和使用char值之后立即进行了一个教科书练习(这意味着我不能使用数组和字符串)。

根据练习,我(用户)必须让用户输入一组字符

例如“IamaDinosaur”然后找到具有最高ASCII值的字母。

如何循环scanf()让用户输入char值,直到用户点击进入?然后如何比较这些值?

2 个答案:

答案 0 :(得分:2)

您可以使用getc吗?

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

显然你可以走scanf("%c")路线。

答案 1 :(得分:1)

如果你不能使用getch(),那么就像人们建议你当然可以使用scanf()一样,继续扫描直到它失败,或者读取换行符:

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