估计strstr内部使用了strlen来计算长度, 简单改进了下, 还有很多改进空间, 比如已经比较过的字符需要记录是否参与下一轮对比...
static char *mystrstr(char *pOri, int OriNum, char *pFind, int FindNum)
{
char *p = NULL;
if(OriNum < FindNum)
return NULL;
else
{
int i = 0, j = 0, Match = 0;
for(i = 0; i < OriNum && FindNum + i + 1 <= OriNum; i++)
{
int e = i;
for(j = 0; j < FindNum; j++)
{
if(!memcmp(pFind + j, pOri + e, 1))
{
e++;
Match++;
}
else
Match = 0;
}
if(Match == FindNum)
{
p = pOri + i;
break;
}
}
}
return p;
}