#include "stdio.h" #include "string.h" int findsubstring(char *s,char *sub) { } int main() { char line[80],substr[10]; int index; gets(line); gets(substr); index=findsubstring(line,substr); if(index>=0) printf("index=%d\n",index); else printf("NOEXIST\n"); return 0; }请完善代码【输入形式】输入两个字符串。 【输出形式】输出查找的结果(下标值或NOEXIST)
时间: 2024-03-18 07:40:18 浏览: 54
#包括stdio.h int main() char s81,c; int i,number=0,word=
完善后的代码如下:
```
#include "stdio.h"
#include "string.h"
int findsubstring(char *s, char *sub) {
int len1 = strlen(s);
int len2 = strlen(sub);
for (int i = 0; i <= len1 - len2; i++) {
int j = 0;
while (j < len2 && s[i + j] == sub[j]) {
j++;
}
if (j == len2) {
return i;
}
}
return -1;
}
int main() {
char line[80], substr[10];
int index;
gets(line);
gets(substr);
index = findsubstring(line, substr);
if (index >= 0)
printf("index=%d\n", index);
else
printf("NOEXIST\n");
return 0;
}
```
该程序定义了一个函数 `findsubstring`,用于在字符串 `s` 中查找子串 `sub`,如果找到则返回子串在字符串中的下标,否则返回 -1。主函数读入两个字符串,调用 `findsubstring` 函数进行查找,并输出结果。注意,使用 `gets` 函数存在缓冲区溢出的风险,建议使用 `fgets` 函数。
阅读全文