Онлайн компилятор C

#include <stdio.h> #include <string.h> int main() { char s[201]; scanf("%s", s); int count = 0; int len = (s); for (int i = 0; i < len; i++) { char c = s[i]; if (s[i] == 'a' || s[i] == 'e' || s[i] == 'i' || s[i] == 'o' || s[i] == 'u' || s[i] == 'y') { count++; }} printf("%d",count); return 0; } }
这段代码试图统计输入字符串中元音字母(a, e, i, o, u, y)的个数,但存在一个明显的语法错误。

- 第7行 `int len = (s);` 缺少了 `strlen` 函数调用,应该写成 `int len = strlen(s);`。当前写法会导致编译错误,因为 `(s)` 只是将字符串地址括起来,无法得到长度。

- 另外,`scanf("%s", s)` 只能读取不含空格的单词,如果输入包含空格,只会读取第一个单词。但根据题目要求,这可能不是当前需要关注的重点。