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;
}
Example #2
0
int main()
{
  char T[] = "abcdabc"; /*tekst*/
  char P[] = "abc"; /*wzorzec*/

  KMP_Matcher(T,P);
}
Example #3
0
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;
}