预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

c语言中使用BF-KMP算法实例c语言中关于使用BF-KMP算法实例直接上代码复制代码代码如下:#define_CRT_SECURE_NO_WARNINGS#include#include#include#defineMAX_SIZE255//定义字符串的最大长度typedefunsignedcharSString[MAX_SIZE];//数组第一个保存长度//BFintBFMatch(char*s,char*p){inti,j;i=0;while(i<strlen(s)){j=0;while(s[i]==p[j]&&j<strlen(p)){i++;j++;}if(j==strlen(p))returni-strlen(p);i=i-j+1;//指针i回溯}return-1;}//getNetxvoidgetNext(char*p,int*next){intj,k;next[0]=-1;j=0;k=-1;while(j<strlen(p)-1){if(k==-1||p[j]==p[k])//匹配的情况下,p[j]==p[k]{j++;k++;next[j]=k;}else{//p[j]!=p[k]k=next[k];}}}//KMPintKMPMatch(char*s,char*p){intnext[100];inti,j;i=0;j=0;getNext(p,next);while(i<strlen(s)){if(j==-1||s[i]==p[j]){i++;j++;}else{j=next[j];//消除了指针i的回溯}if(j==strlen(p)){returni-strlen(p);}}return-1;}intmain(){inta,b;chars[MAX_SIZE],p[MAX_SIZE];printf("请输入模式串:");scanf("%s",&s);printf("请输入子串:");scanf("%s",&p);a=BFMatch(s,p);b=KMPMatch(s,p);if(a!=-1){printf("使用BF算法:%dn",a);}else{printf("未匹配n");}if(b!=-1){printf("使用KMP算法:%dn",a);}else{printf("未匹配n");}system("pause");}结果复制代码代码如下:请输入模式串:lalalalalaaaa请输入子串:lalaa使用BF算法:6使用KMP算法:6请按任意键继续...