在 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
语句之后。
有点麻烦,我很困惑为什么这行不通。该代码将接受输入并打印没有任何小写元音的输入。
#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
语句之后。