# include <stdio.h>
# include <assert.h>
# include <string.h>
int BF(char* str, char* sub, int pos)
{
assert(str != NULL && sub != NULL);
if (str == NULL || sub == NULL)
{
return -1;
}
int lenstr = strlen(str);
int lensub = strlen(sub);
if (pos < 0 || pos > lenstr-1)
{
return -1;
}
int i = pos;
int j = 0;
while (i < lenstr && j < lensub)
{
if(str[i] == sub[j])
{
i++;
j++;
}
else
{
i = i-j+1;
j = 0;
}
}
if (j > lensub-1)
{
return i-j+1;
}
return -1;
}
int main() {
char a[100], b[100]; // 定义字符数组来存储输入的字符串
int pos;
printf("请输入主串:");
scanf("%99s", a); // 可以不加&
printf("请输入字串:");
scanf("%99s", &b);
printf("请输入从第几号位开始匹配:");
scanf("%d", &pos);
int n;
// printf("%s", a);
n = BF(&a, b, pos-1); // 可以不加&
if(n == -1)
{
printf("没有找到!\n");
}
else
{
printf("查找到的位置是:%d", n);
}
return 0;
}