#include<bits/stdc++.h>
#include<conio.h>
using namespace std;
int BF(char *s,int len_s,char *t,int len_t)
{
int i,pos;
i=pos=0;
int j=0;
while(i<len_s && j<len_t)
{
if(s[i]==t[j])
++i,++j;
else
{
i=i-j+1;
j=0;
}
}
if(j==len_t)
return i-j+1;
return -1;
}
int main()
{
char s[150],t[150];
while(true)
{
system("CLS");
cout << "输入模式串: " ;
cin >> s;
cout << "输入匹配串:" ;
cin >> t;
int len_s=strlen(s);
int len_t=strlen(t);
int ans=BF(s,len_s,t,len_t);
if(ans!=-1)
cout << "开始的位置为:" << ans << "\n" << endl;
else
cout << "未找到!!!" << "\n" << endl;
cout << "按任意键继续!!!" << endl;
getch();
}
return 0;
}
BF算法
最新推荐文章于 2021-11-16 23:27:15 发布