Online Compiler C

#include <stdio.h> int main() { char str[10001]; char c; while ((c=getchar())!='\n'){ if( c=='a'||c=='e'||c=='i'||c=='o'||c=='u'||c=='y') {continue;} else {putchar(c);} } printf("\n"); return 0; }
这段代码的功能是:从标准输入读取一行字符,遇到换行符停止,然后输出这一行中所有非元音字母(a, e, i, o, u, y)的字符,元音字母被跳过不输出。

- 注意变量 `c` 的类型是 `char`,但 `getchar()` 返回的是 `int` 类型。当输入结束或出错时,`getchar()` 返回 `EOF`(通常是 -1),而 `char` 类型可能无法正确存储这个值,导致循环条件判断出错。建议将 `c` 的类型改为 `int`。
- 循环条件 `(c=getchar())!='\n'` 只会在遇到换行符时停止,但如果输入提前结束(例如通过文件重定向或手动输入结束符),程序可能无法正确处理。考虑同时检查 `EOF` 条件。