strstr的自我實現!!!

  這個就跟上面那個strcat一樣了。直接給我我的代碼

#include<stdio.h>

#include<assert.h>


char *my_strstr(const char *str1,const char *str2)

{

assert(str1);

assert(str2);

char *p1 = NULL;

char *p2 = NULL;

char *p = str1;//對str1做標記,爲了方便輸出

while (*p)

{

p1 = p;

p2 = str2;

while ((*p1 == *p2)&&(*p1!='\0'))//p1指向'\0'表示p1結束了,這裏包含一種情況

                                                 //是p2有和p1相同的字符但是並不是它的子串

{

p1++;

p2++;

if (*p2 == '\0')

{

return p;

}

}

p++;

}

return NULL;

}


int main()

{

char str1[20] = "helloworldddd";

char str2[10] = "world";

char *ret = my_strstr(str1, str2);

printf("%s\n",ret);

system("pause");

return 0;

}


  這裏同樣用到了const,但是不同的是這個函數只是對str1,str2進行判斷,並沒有修改。所以兩個字符串都要用const保護起來。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章