int str_str(char* s, char* pattern)
{
/* 1, define and init */
int sCnt = 0;
int ptnCnt = 0;
char *ps = s;
char *pp = pattern;
if (NULL == s || NULL == pattern)
{
return -1;
}
/* 2, find */
while ('/0' != *ps && '/0' != *pp)
{
if (*ps == *pp)
{
sCnt++;
ptnCnt++;
}
else
{
sCnt = sCnt - ptnCnt + 1;
ptnCnt = 0;
}
ps = s + sCnt;
pp = pattern + ptnCnt;
}
/* 3, return */
if ('/0' == *pp)
{
return ps - (pp - pattern) - s;
}
else
{
return -1;
}
}
怎么这么难看呢?