#include <stdio.h> #include <string.h> void main( ) { char str[80],substr[80]; int i,k,sum=0; printf("Input a string:"); gets(str); printf("Input a substring:"); gets(substr); for(i=0;str[i];i++) { for(k=0,substr[k]==str[i+k],k++) /* error4 */ if(substr[k+1]= '\0') /* error5 */ { sum++; break; } } printf("sum=%d\n",sum); }
时间: 2023-12-17 15:03:18 浏览: 154
这段代码中有多处错误,可以参考下面的注释进行修改:
```c
#include <stdio.h>
#include <string.h>
int main() { // main 函数应该返回一个整数
char str[80], substr[80];
int i, k, sum = 0;
printf("Input a string:");
gets(str); // gets 函数已经被废弃,应该使用 fgets 函数
printf("Input a substring:");
gets(substr); // gets 函数已经被废弃,应该使用 fgets 函数
for (i = 0; str[i]; i++) {
for (k = 0; substr[k] && substr[k] == str[i + k]; k++) { // 逻辑运算符应该为 &&,另外,substr[k]==str[i+k] 应该放在循环体内,而非循环条件中
if (substr[k + 1] == '\0') { // 应该使用 == 比较运算符,另外应该比较 substr[k + 1] 而非 substr[k]
sum++;
break;
}
}
}
printf("sum=%d\n", sum);
return 0; // main 函数应该返回一个整数
}
```
阅读全文