int main(void) { String Target, Match; Number Local; int count; memset((void *)&Target, 0, sizeof(String)); memset((void *)&Match, 0, sizeof(String)); memset((void *)&Local, 0, sizeof(Number)); //输入模式字符串 fgets(Target.data, MAX, stdin); Target.data[strlen(Target.data) - 1] = '\0'; Target.length = strlen(Target.data); //输入需匹配字符串 fgets(Match.data, MAX, stdin); Match.data[strlen(Match.data) - 1] = '\0'; Match.length = strlen(Match.data); if(KMP_Matcher(Target, Match, &Local) == SUCCESS) { printf("number : %d\n", Local.num); for(count = 0; count < Local.num; count++) { printf("offset[%d] = %d\n", count, Local.place[count]); } } else { printf("Match error!\n"); } return 0; }
int main() { char T[] = "abcdabc"; /*tekst*/ char P[] = "abc"; /*wzorzec*/ KMP_Matcher(T,P); }
int main() { FILE *f; f=fopen("in.txt","r"); int L_String, L_SubString; char String[1000]; char SubString[100]; fscanf(f,"%d",&L_String); fscanf(f,"%d",&L_SubString); Read_String(String, L_String, f); Read_String(SubString, L_SubString, f); KMP_Matcher(String, SubString, L_String, L_SubString); fclose(f); return 0; }