1. 程式人生 > >模擬庫函式strchr和strrstr

模擬庫函式strchr和strrstr

char* my_strrstr(char* dest, const char* str)
{
assert(dest);
assert(str);
while (*dest)   //使dest指向'\0'
{
dest++;          
}
dest--;         //使dest指向字串最後一個字母
while (*dest)
{
char* tmp = dest;   //如果進入下一個while迴圈,記錄下進入前dest的地址
while (*str)        
{
if (*dest++ == *str++)
{
;
}
else
{
break;
}
}
dest--;            //dest倒退一個字元
if (*str == '\0') 
{
return tmp ;    //若*str等於'\0',已經找到了,則返回進入第二個while迴圈時dest的起始位置.
}
}
return 0;
}


int main()
{
char* arr1 = "acddefdefgh";
char* arr2 = "fg";
printf("%s\n", my_strrstr(arr1, arr2));
system("pause");
return 0;
}