//200624101101杨振平
#include <stdio.h>
//全局变量计算比较次数
int count=0;
//主函数
void main()
{
//声明BF算法的函数原型
int BF(char S[],int n,char T[],int m);
//初始化主串
char S[14]="ababcabcacbab";
printf("主串:%s/n",S);
//初始化子串
char T[6]="abcac";
printf("子串:%s/n",T);
//输出匹配结果
printf("串匹配位置:%d/n",BF(S,13,T,5));
printf("串匹配比较次数:%d/n",count);
}
//定义实现BF算法的函数
int BF(char S[],int n,char T[],int m)
{
int i=0;
int j=0;
while(i<n && j<m)
{
if(S[i]==T[j] && ++count)
{
i++;
j++;
}
else
{
i=i-j+1;
j=0;
}
}
if(j<=m)
return i-j+1;
else
return 0;
}
时间: 2024-10-23 02:13:24