- 原理
#include <iostream>
using namespace std;
#include <string.h>
int BF(string S,string T) {
int i = 0;
int j = 0;
while (i < S.length() && j < T.length()) {
if (S[i] == T[j]) {
i++;
j++;
}
else
{
i = i - j + 1;
j = 0;
}
}
if (j >= T.length())
return i - T.length();
else
return -1;
}
int main()
{
while (1) {
string A;
cout << "输入主串:" << endl;
cin >> A;
string B;
cout << "输入模式串:" << endl;
cin >> B;
cout << "匹配的开始位置:" << BF(A, B) << endl;
//std::cout << "Hello World!\n";
}
}