在 C 语言中使用 getchar() 去除输入的元音

Devowelling an input using getchar() in C

有点麻烦,我很困惑为什么这行不通。该代码将接受输入并打印没有任何小写元音的输入。

#include <stdio.h>
int main (void) {
    int i=getchar();
        while (i != EOF) {
            if(i!='a' && i!='e' && i!='i'&&i!='o' && i!='u') {
                printf("%c", i);
                i=getchar();    
            }
        }

}   

检查您的 if 声明。

如果输入的字符不在 {a,e,i,o,u} 中,则打印该字符并得到一个新字符。但是你真的希望每次循环都获得一个新角色。由于 i 是元音时不会发生变化,因此代码将永远运行——永远不会到达 EOF.

解决方法是将对 getchar() 的调用移动到 if 语句之后。