最后一个元素39intflag =0;//用一个标志位来确定后缀栈中到最后一个元素都与前缀栈中的符号匹配40while(q >=suffix_stack)41{42if(*p == *q)43{44value++;45p++;46flag=1;47}48else{49flag =0;50}51q--;52}53if(flag ==0) value =0;54returnvalue;55}5657/*58*创建搜索字符串的KMP表59*/60...
/*naive string-matching algorithm,T为原始字符串,P为需要匹配的字符串*/ void naiveMatch(char *T,char *P) { int lenT,lenP,i,j; lenT=strlen(T); lenP=strlen(P); if(lenT<lenP)/*需要匹配的字符串比原始字符串还要长出错*/ { perror("input error"); return ; } for(i=0;i<(lenT-lenP...
cout<<"请输入这个新的字符串(第一位为字符串的长度):"<<endl; cin>>s1; cout<<"这个字符串为:"; int i = 1; while(s1[i] != NULL){ cout<<s1[i]; i++; } cout<<endl; cout<<"s1[0]可以设置有效字符串的长度:" <<s1[0]<<endl<<endl; } 1. 2. 3. 4. 5. 6. 7. 8. 9....
搜索词移动的时候,第一个"AB"向后移动4位(字符串长度-部分匹配值),就可以来到第二个"AB"的位置。 接下来,就是我自己对KMP算法的实现了。 这个算法的实现主要包括了三个方面: 1) 求得我们用来搜索字符串的部分匹配值表 2) 实现待搜索字符串在搜索过程中的指针的移动问题 3) 如何定位我们搜索到的结果 接下...
1) 求得我们用来搜索字符串的部分匹配值表 2) 实现待搜索字符串在搜索过程中的指针的移动问题 3) 如何定位我们搜索到的结果 接下来我就贴上我实现的代码 /* *用KMP算法实现字符串匹配搜索方法 *该程序实现的功能是搜索本目录下的所有文件的内容是否与给定的 ...