//123456 561 可循环查找
char *myStrStr(char* pcSrc, char* pcDes, unsigned int readP, unsigned int writeP) {
int srcLen = strlen(pcSrc);
int desLen = strlen(pcDes);
int step = 0;
int findLen = 0;
if (readP >= srcLen || (desLen>srcLen) || (readP==writeP) ) {
return NULL;
}
if (writeP>readP && ((writeP - readP) > srcLen)) {
return NULL;
}
if (readP < writeP) {
findLen = writeP - readP;
}
else {
findLen = srcLen - readP;
findLen + writeP;
}
char* pcStrH = pcSrc + readP;
while (1) {
char* p1 = pcStrH;
char* p2 = pcDes;
do
{
if (!*p1 && (readP>writeP)) {
p1 = pcSrc;
}
if (!*p2) {
return pcStrH;
}
} while (*p1++ == *p2++);
pcStrH++;
step++;
if (step > findLen) {
return NULL;
}
}
ret