实现一个strstr函数

读入一行英文语句,并判断其中是否出现,love这个单词?(使用指针和字符函数以及字符串函数实现)思路:先判断是否存在这样的子串,再判断它是否是一个独立的单词(或者将撰字符... 读入一行英文语句,并判断其中是否出现,love这个单词?(使用指针和字符函数以及字符串函数实现)
思路:先判断是否存在这样的子串,再判断它是否是一个独立的单词(或者将撰字符串分 为多个单词,再进行比较)
我是想自己实现一个strstr函数
这个是C++问题
展开
 我来答
高金山
2009-05-18 · TA获得超过1万个赞
知道大有可为答主
回答量:4101
采纳率:0%
帮助的人:1697万
展开全部
bool exist(char *str)
{
char *love="love",*p=NULL;

if((p=strstr(str,love))==NULL)//先判断是否存在这样的子串
{
return false;
}
if(p[strlen(love)]!='\0' && p[strlen(love)]!=' ')//再判断它是否是一个独立的单词
{
return false;
}
return true;
}
赏良牢钗
2019-04-15 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.4万
采纳率:32%
帮助的人:909万
展开全部
有什么疑问?代码没问题。
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
等待的幸福快乐
2015-10-27 · 知道合伙人数码行家
等待的幸福快乐
知道合伙人数码行家
采纳数:1011 获赞数:35893

向TA提问 私信TA
展开全部
  函数实现
  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);
  }
  
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
黄海海域面积
2009-05-19 · TA获得超过169个赞
知道答主
回答量:163
采纳率:0%
帮助的人:95.6万
展开全部
用KMP算法可以吗?
str what?
有strstr吗
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式