程序描述:
设计并实现串的模式匹配算法(BP算法)
#include<cstring>
#include<iostream>
using namespace std;
#define max 255
typedef char SString[max+1];
int StrAssign(SString T,char *chars)
{
int i;
if(strlen(chars)>max)
return -1;
else
{
T[0]=strlen(chars);
for(i=1;i<=T[0];i++)
T[i]=*(chars+i-1);
return 1;
}
}
int Index(SString S,SString T,int pos){
int i=pos;
int j=1;
while(i<=S[0]&&j<=T[0])
{
if(S[i]==T[j])
{
++i;
++j;
}
else
{
i=i-j+2;
j=1;
}
}
if(j>T[0])
return i-T[0];
else
return -1;
return 0;
}
int main()
{
char a[1000],b[1000];
gets(a);
gets(b);
SString S,T;
StrAssign(S,a);
StrAssign(T,b);
if(Index(S,T,1)==-1)
cout<<"模式匹配失败";
else
cout<<Index(S,T,1);
return 0;
}