C语言实现库函数strstr()
因为学习原因想要自己写一段strstr()的代码,但是用自己写出来的代码提交到OJ就出错了,请帮忙改正一下char*str_s(char*s1,char*s2){intl...
因为学习原因想要自己写一段strstr()的代码,但是用自己写出来的代码提交到OJ就出错了,请帮忙改正一下
char *str_s(char *s1,char *s2)
{
int len,i,flag=0;
char *s3=NULL;
len=strlen(s2);
while(*s1!='\0')
{
if(*s1==*s2)
{
s3=s1;
for(i=0;i<len;i++)
{
if(*(s1+i)!=*(s2+i))
{
s3=NULL;
break;
}
else
flag=1;
}
}
s1++;
if(flag)
return s3;
}
return s3;
} 展开
char *str_s(char *s1,char *s2)
{
int len,i,flag=0;
char *s3=NULL;
len=strlen(s2);
while(*s1!='\0')
{
if(*s1==*s2)
{
s3=s1;
for(i=0;i<len;i++)
{
if(*(s1+i)!=*(s2+i))
{
s3=NULL;
break;
}
else
flag=1;
}
}
s1++;
if(flag)
return s3;
}
return s3;
} 展开
1个回答
展开全部
char *str_s(char *s1,char *s2)
{
int len,i,flag=0;
char *s3=NULL;
len=strlen(s2);
while(*s1!='\0')
{
if(*s1==*s2)
{
s3=s1;
for(i=0;i<len;i++)
{
if(*(s1+i)!=*(s2+i))
{
s3=NULL;
break;
}
else
flag=1;
}
}
s1++;
if(flag&&i == len)//注意这里的判断
return s2;//返回的话,最好是返回s2 否则你如果字符串在中间的话,后面的数据是不需要的。
}
return s3;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询