STRSTR()関数は、以下の機能を実現するために、ストリングの最初のアドレスを見つけるために使用されます。
char* strstr(char * str1,char * str2)
{
char *p1=NULL;
char *p2=NULL;
while(*str1)
{
p1=str1;
p2=str2;
while(*p1==*p2 && *p2!=NULL)
{
p1++;
p2++;
}
if(*p2==NULL)
{
return str1;
}
str1++;
}
return NULL;
}
テストケース:
#include<stdio.h>
#include<string.h>
char* strstr(char * str1,char * str2);
int main()
{
char *str1="accdef";
char *str2="cde";
printf("%0x",strstr(str1,str2));
}
char* strstr(char * str1,char * str2)
{
char *p1=NULL;
char *p2=NULL;
while(*str1)
{
p1=str1;
p2=str2;
while(*p1==*p2 && *p2!=NULL)
{
p1++;
p2++;
}
if(*p2==NULL)
{
return str1;
}
str1++;
}
return NULL;
}
テスト結果: