C语言实现模式匹配算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

方法一:

#include

#include

#define maxsize50

int BF(char s[],char t[]);

int main()

{

char a[maxsize];char b[maxsize];

int i;

gets(a);

gets(b);

for(i=0;a[i]!='\0';i++)

printf("%c",a[i]);

putchar('\n');

for(i=0;b[i]!='\0';i++)

printf("%c",b[i]);

putchar('\n');

printf("模式匹配的位置:%d\n",BF(a,b)); return0;

}

int BF(char s[],char t[])

{

int m,n,i=0,j=0;

m=strlen(s);

n=strlen(t);

while(i

if(s[i]==t[j])

{i++;j++;}

else{i=i-j+1;

j=0;

}

if(j==n)

return(i-n+1);

else

return0;

}

方法二:

#include

#include

#define maxsize50

int BF(char s[],char t[]);

int main()

{

char a[maxsize],b[maxsize];

int i;

gets(a);

gets(b);

for(i=1;a[i]!='\0';i++)

printf("%c",a[i]);

putchar('\n');

for(i=1;b[i]!='\0';i++)

printf("%c",b[i]);

putchar('\n');

printf("模式匹配的位置:%d",BF(a,b));

putchar('\n');

return0;

}

int BF(char s[],char t[])

{

int m,n,i=1,j=1;

m=strlen(s);

n=strlen(t);

while(i

if(s[i]==t[j])

{i++;j++;}

else

{i=i-j+2;

j=1;}

if(j==n)

return(i-n+1);

else

return0;

}

相关文档
最新文档