编写函数 int substring(char s[], char sub[]),查找sub串在字符串s中第一次出现的位置,若找到,函数返回对应位置,否则返回-1。注意主串第1个字符的位置为1。例如s串为“abcdefg”,sub串为“def”,则返回值为4。在main函数中输入主串和子串,调用该函数并输出结果。,用C语言,用函数
时间: 2023-07-16 20:11:40 浏览: 69
下面是实现函数 `int substring(char s[], char sub[])` 的代码:
```c
#include <stdio.h>
#include <string.h>
int substring(char s[], char sub[]) {
int s_len = strlen(s); // 获取主串s的长度
int sub_len = strlen(sub); // 获取子串sub的长度
int i, j;
for (i = 0; i <= s_len - sub_len; i++) {
for (j = 0; j < sub_len; j++) {
if (s[i+j] != sub[j]) {
break;
}
}
if (j == sub_len) {
return i + 1; // 返回子串在主串中的起始位置
}
}
return -1; // 没有找到子串
}
int main() {
char s[100], sub[100];
printf("请输入主串:");
scanf("%s", s);
printf("请输入子串:");
scanf("%s", sub);
int pos = substring(s, sub);
if (pos != -1) {
printf("子串在主串中的起始位置为:%d\n", pos);
} else {
printf("未找到子串!\n");
}
return 0;
}
```
函数 `substring()` 的思路是:遍历主串s中所有可能包含子串sub的位置,对于每个位置,判断是否与子串sub匹配。如果匹配成功,则返回该位置,否则继续遍历。如果遍历结束后仍未找到子串,则返回-1。在主函数中,输入主串和子串,调用函数 `substring()` 并输出结果。