int StrStr(char a[], int alen, char pat[], int patlen)
{
int i = 0;
int j = 0;
while (i<alen && j<patlen)
{
if (a[i] == pat[j])
{
++i; ++j;
}
else
{
i = i - j + 1;
j = 0;
}
}
if ( j >= patlen)
return (i - patlen + 1); //位置
else
return 0; //没有匹配
}
int StrLen(char *s)
{
int len;
for (len = 0; s[len] != '\0'; len++)
;
return len;
}
int _tmain(int argc, _TCHAR* argv[])
{
char a[] = "adstringstdeilstrins";
char pat[] = "strin";
int alen = StrLen(a);
int patlen = StrLen(pat);
printf("alen=%d, patlen=%d\n", alen, patlen);
int i = StrStr(a, alen, pat, patlen);
printf("find pos=%d\n", i);
return 0;
}