代码:
#include <stdio.h>
#include <string.h>
int PatternMatch(char *str,char *pat);
void main()
{
char str1[]="121312adsdfcsfdf8973dsfsd";
char pat[]="dsfsd";
int x = PatternMatch(str1,pat);
printf("%d\n",x);
getchar();
}
int PatternMatch(char *str,char *pat)
{
int i;
int len = strlen(str);
int patlen = strlen(pat);
for (i=0;i<=len-patlen+1;i++)
{
if (str[i]==pat[0])
{
int index = i;
int k = i+1;
int j=1;
while (j<patlen&&str[k++]==pat[j++])
{
;
}
if (j==patlen) //找到了
{
return index;
}
}
}
return -1;
}
http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html