实现一个strstr函数
读入一行英文语句,并判断其中是否出现,love这个单词?(使用指针和字符函数以及字符串函数实现)思路:先判断是否存在这样的子串,再判断它是否是一个独立的单词(或者将撰字符...
读入一行英文语句,并判断其中是否出现,love这个单词?(使用指针和字符函数以及字符串函数实现)
思路:先判断是否存在这样的子串,再判断它是否是一个独立的单词(或者将撰字符串分 为多个单词,再进行比较)
我是想自己实现一个strstr函数
这个是C++问题 展开
思路:先判断是否存在这样的子串,再判断它是否是一个独立的单词(或者将撰字符串分 为多个单词,再进行比较)
我是想自己实现一个strstr函数
这个是C++问题 展开
4个回答
展开全部
有什么疑问?代码没问题。
while
(*cp)
{
s1
=
cp;
s2
=
(char
*)str2;
while
(*s1
&&
*s2
&&
!(*s1
-
*s2))
s1++,
s2++;
//逐个比较s1、s2字符串每个字符,直到不相同或其中一个串结束
if
(!*s2)
return(cp);
//
如果s2结束,表示满足匹配,返回结果
cp++;
//
不满足匹配,从str1的下一个字符开始重新比较str2
}
return
null;
//
找不到子串,返回null
while
(*cp)
{
s1
=
cp;
s2
=
(char
*)str2;
while
(*s1
&&
*s2
&&
!(*s1
-
*s2))
s1++,
s2++;
//逐个比较s1、s2字符串每个字符,直到不相同或其中一个串结束
if
(!*s2)
return(cp);
//
如果s2结束,表示满足匹配,返回结果
cp++;
//
不满足匹配,从str1的下一个字符开始重新比较str2
}
return
null;
//
找不到子串,返回null
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
函数实现
1.Copyright 1990 Software Development Systems, Inc.
char *strstr(const char *s1,const char *s2)
{
int len2;
if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误
return(char*)s1;
for(;*s1;++s1)
{
if(*s1==*s2 && strncmp(s1,s2,len2)==0)
return(char*)s1;
}
return NULL;
}
Copyright 1986 - 1999 IAR Systems. All rights reserved
char *strstr(constchar*s1,constchar*s2)
{
int n;
if(*s2)
{
while(*s1)
{
for(n=0;*(s1+n)==*(s2+n);n++)
{
if(!*(s2+n+1))
return(char*)s1;
}
s1++;
}
return NULL;
}
else
return (char*)s1;
}
char *strstr(const char*s1,const char*s2)
{
const char*p=s1;
const size_tlen=strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{
if(strncmp(p,s2,len)==0)
return (char*)p;
}
return(0);
}
1.Copyright 1990 Software Development Systems, Inc.
char *strstr(const char *s1,const char *s2)
{
int len2;
if(!(len2=strlen(s2)))//此种情况下s2不能指向空,否则strlen无法测出长度,这条语句错误
return(char*)s1;
for(;*s1;++s1)
{
if(*s1==*s2 && strncmp(s1,s2,len2)==0)
return(char*)s1;
}
return NULL;
}
Copyright 1986 - 1999 IAR Systems. All rights reserved
char *strstr(constchar*s1,constchar*s2)
{
int n;
if(*s2)
{
while(*s1)
{
for(n=0;*(s1+n)==*(s2+n);n++)
{
if(!*(s2+n+1))
return(char*)s1;
}
s1++;
}
return NULL;
}
else
return (char*)s1;
}
char *strstr(const char*s1,const char*s2)
{
const char*p=s1;
const size_tlen=strlen(s2);
for(;(p=strchr(p,*s2))!=0;p++)
{
if(strncmp(p,s2,len)==0)
return (char*)p;
}
return(0);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用KMP算法可以吗?
str what?
有strstr吗
str what?
有strstr吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询