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

#include <stdio.h> int length(char s[]) { int i = 0; while (s[i] != '\0') { i++; } return i; } int coounter(char a[], char b[]) { int size_a = length(a); int size_b = length(b); int counter = 0; if (size_a >= size_b) { for (int i = 0; i < size_a - size_b + 1; i++) { int sum = 0; for (int j = 0; j < size_b; j++) { if (a[i + j] == b[j]) { sum++; } } if (sum == size_b) { counter++; } } } return counter; } int main() { char a[1001]; char b[101]; scanf("%s", a); scanf("%s", b); printf("%d", coounter(a, b)); return 0; }
这段代码的功能是:输入两个字符串,然后统计字符串a中出现了多少次字符串b(作为连续子串)。它先计算两个字符串的长度,然后遍历a的每个可能起始位置,检查从该位置开始的子串是否与b完全匹配。

你的代码有一个拼写错误,导致程序无法正确运行。

- 函数名 `coounter` 拼写错误,应该是 `counter`。在 `main` 函数中调用时写的是 `coounter`,但定义时写的是 `coounter`,这会导致编译错误。请检查函数名是否一致。
- 另外,变量名 `counter` 和函数名 `coounter` 容易混淆,建议统一命名,避免混淆。