int main() { char *s = "goodgoogle"; char *t = "google"; //int result = index_BF(s,t,5); int result = index_KMP(s,t,0); printf("%d\n",result); return 0; }
void main() { int n; get_next(t,next); n=index_KMP(s,t,pos); if(n!=0) printf("\n模式串 t 在主串 s 中第 %d 个位置之后。\n\n",n); else printf("\n主串中不存在与模式串相匹配的子串!\n\n"); }
int main() { int n,n_common,n2; char s[20] = "adjfskjfskdjsfkglsi"; char t[5] = "skdj"; PSString ps, pt; //(1) create(s, ps); create(t, pt); //(2) n_common = index_common(ps, pt); int next[Maxsize],nextval[Maxsize]; printf("普通匹配情况下:\n"); print_result(n_common); //(3) get_next(pt, next); //(4) n = index_KMP(ps, pt, next); printf("\n\nKMP匹配情况下:\n"); print_result(n); for (int i = 0; i < 5; i++) printf("next[%d] = %d \n", i, next[i]); //(5) n2 = index_KMP2(ps, pt, nextval); printf("\n\nKMP修正版匹配情况下:\n"); print_result(n2); for (int i = 0; i < 5; i++) printf("nextval[%d] = %d \n", i, nextval[i]); return 0; }