这个总觉得有点奇怪?会不会不像kmp?
#include<iostream> using namespace std; const int Max=20; int KMP(char S[],char T[]) { int i,j; i=0; j=0; int next[10]; next[2]=0; next[1]=0; next[0]=-1; int count=0; if(S[i]=='\0'&&T[i]=='\0') { cout<<"数为空!"<<endl; return 0; } for(i=0;i<Max;) { if(S[i]==T[j]){i++;j++;} else{j=next[j];i++;j++;count++;} if(T[j]=='\0') { cout<<"在第"<<count<<"次后成功!"<<endl; return 0; } } return 0; } int main() { char S[]="abacabcdad"; char T[]="abcd"; KMP(S,T); return 0; }原文链接:https://www.f2er.com/datastructure/382841.html