這個就跟上面那個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保護起來。