简介:
举例:(图)

代码:
#include<stdio.h>
#include<assert.h>
int BF(char* str, char* sub)
{
assert(str != NULL && sub != NULL);
if (str == NULL || sub == NULL) return -1;
int i = 0;
int j = 0;
int strLen = strlen(str);
int subLen = strlen(sub);
while (i < strLen && j < subLen)
{
if (str[i] == sub[j])
{
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
}
if (j >= subLen)
{
return i - j;
}
return - 1;
}
int main()
{
printf("%d\n", BF("ababcabcdabcde", "abcd"));
printf("%d\n", BF("ababcabcdabcde", "abcde"));
printf("%d\n", BF("ababcabcdabcde", "abcdef"));
return 0;
}