假设在文本"ababcabccabcacbab"中查找模式"abcac",写出采用BF算法的串匹配过程。
#include<iostream>
using namespace std;
int BF(char S[], char T[])
{
int index=0;
int i=0,j=0;
while((S[i]!='\0')&&(T[j]!='\0'))
{
if(S[i]==T[j])
{
i++;
j++;
}else{
index++;
i=index;
j=0;
}
}
if(T[j]=='\0')
return index+1;
else
return 0;
}
int main()
{
char S[]="ababcabccabcacbab";
char T[]="abcac";
//指针式赋值
//char *S="ababcabccabcacbab";
//char *T="abcac";
int m=BF(S,T);
if(m==0)
cout<<"Not find";
else
cout<<"Yes,start position:"<<m;
return 0;
}
将字符串赋值给字符数组
#include<iostream>
using namespace std;
int main()
{
char S[]="ababcabccabcacbab";
char T[]="abcac";
char *S1="ababcabccabcacbab"; //指针式赋值
char *T1="abcac";
}