Online Compiler C

#include <stdio.h> int main() { char a[1001] = {0}; fgets(a, sizeof(a), stdin); int i = 0, j = 0; for (i = 0; a[i] != '\0'; i++) { if (a[i] == 'a' || a[i] == 'e' || a[i] == 'i' || a[i] == 'o' || a[i] == 'u' || a[i] == 'y') continue; a[j++] = a[i]; } a[j] = '\0'; printf("%s", a); return 0; }
这段代码的功能是:从标准输入读取一行字符串,然后删除其中所有的小写元音字母(a, e, i, o, u, y),最后输出处理后的字符串。它使用双指针技巧,i 遍历原字符串,j 记录非元音字母应该放置的位置。

- 你的代码只处理了小写元音字母,但题目可能要求同时处理大写元音字母。检查一下是否需要包含大写版本,比如 'A', 'E', 'I', 'O', 'U', 'Y'。
- 注意 fgets 会读取换行符 '\n' 并存入数组,如果输入末尾有换行,它会被当作普通字符处理。考虑是否需要处理这个换行符,以免它被保留在输出中。