1 #include<stdio.h>
2 #include<string.h>
3
4 int BF(char *A, char *B) {
5 int i = 0,j=0;
6 while(i < strlen(A) && j < strlen(B)) {
7 if(A[i]==B[j]) {
8 i++;
9 j++;
10 } else {
11 i = i - j + 1; //j代表j(i)移动的距离,i返回初始位置再从下一个开始
12 j = 0;
13 }
14 }
15 if(j == strlen(B))
16 return i - strlen(B) + 1; //加一是第几个,不加一是下标
17
18 return -1;
19 }
20
21 int main() {
22 char *A = "ababcabcacbab";
23 char *B = "abcac";
24 int num = BF(A, B);
25 printf("A = %s\nB = %s\n", A, B);
26 printf("number = %d\n",num);
27
28 return 0;
29 }