如何在C语言中收集一组非预定的字符



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

根据练习,我(用户)将不得不让用户输入一组字符

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

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

你可以用getc ?

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

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

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

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

最新更新