我有一个关于c编程无限循环的问题 intmain(){ 整数计数[26]={0}; 字符输入; int i; 而(1){ scanf(“%c”,&input); if(input>='a'&&input='a'&&input

我有一个关于c编程无限循环的问题 intmain(){ 整数计数[26]={0}; 字符输入; int i; 而(1){ scanf(“%c”,&input); if(input>='a'&&input='a'&&input,c,loops,while-loop,char,scanf,C,Loops,While Loop,Char,Scanf,这里有一个演示程序,显示while循环的外观。我认为空格字符“”是一个有效字符,但它不被计算在内 int main() { int count[26]={0}; char input; int i; while(1){ scanf("%c", &input); if(input>='a'&&input<='z') count[input-'a']++; else if(input&

这里有一个演示程序,显示while循环的外观。我认为空格字符“”是一个有效字符,但它不被计算在内

int main() {
    int count[26]={0};
    char input;
    int i;
    while(1){
        scanf("%c", &input);
        if(input>='a'&&input<='z') count[input-'a']++;
        else if(input>='A'&&input<='Z') count[input-'A']++;
        else break;
    }
    for (i=0; i<26; i++) {
        if(count[i]!=0) {
            printf("%c : %d\n", 'A'+i, count[i]);
        }
    }
    return 0;
}
然后程序输出将是

Hello World

从理论上讲,您已经在这样做了,但是您不应该对不可预知的输入(如用户输入)使用scanf。
Hello World
'D' : 1
'E' : 1
'H' : 1
'L' : 3
'O' : 2
'R' : 1
'W' : 1