#include<iostream>
#include <stdio.h>
using namespace std;
#define maxSize 50
int BF(char *str, char *substr);
void main() {
char str[50] = "ABABCABCACBAB";
char substr[50] = "ABCAC";
int result;
cout << "BF算法匹配结果:" << endl;
result = BF(str, substr);
if (result != -1)
cout << "主串与子串在主串的第" << result << "个字符(首字符的位置为0)处首次匹配" << endl;
else
cout << "无匹配子串" << endl;
}
int BF(char *str, char *substr) {
int i = 0, j = 0, k = i;
while (i < strlen(str) && j < strlen(substr)) {
if (str[i] == substr[j]) {
++i;
++j;
}
else {
j = 0;
i = ++k;
}
}
if (j >= strlen(substr)) {
return k;
}
else
return -1;
}