编程实现strstr函数「建议收藏」

编程实现strstr函数「建议收藏」函数接口为:char*mystrstr(char*str1,char*str2)要求:在字符串str1中查找第一次出现字符串str2的位置,如果找到匹配的字符串,返回第一次匹配的指针,否则返回NULL。#include<iostream>usingnamespacestd;char*mystrstr(char*str1,char*str2){ char*p,*q;…

大家好,又见面了,我是你们的朋友全栈君。

函数接口为:char *mystrstr(char *str1,char *str2)

要求:在字符串str1中查找第一次出现字符串str2的位置,如果找到匹配的字符串,返回第一次匹配的指针,否则返回NULL。

#include<iostream>
using namespace std;
char *mystrstr(char *str1, char *str2)
{

    char *p, *q;
    if (str1 == NULL || str2 == NULL)
   {

    cout << “the string is error!” <<endl;
    exit(0);
   }
  while (*str1 != ‘\0’)
  {

    p = str1;
    q = str2;
  while (*p == *q&&*q!=’\0′)
  {

    p++;
    q++;
    }
    if (*q == ‘\0’)
      return str1;
    str1++;
  }
  return NULL;
}
int main()
{

  char a[] = “hello world”;
  char b[] = “world”;
  char *p = mystrstr(a, b);
  if(p)
  cout << p << endl;
  getchar();
  return 0;
}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/153009.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 进程调度与进程切换_模式切换和进程切换有什么区别

    进程调度与进程切换_模式切换和进程切换有什么区别从今天开始,我们将要开启一个新的系列【闪耀计划】,没错!这是今年上半年的一整个系列计划!本专题目的是通过百天刷题计划,通过题目和知识点串联的方式,完成对计算机操作系统的复习和巩固;同时还配有专门的笔记总结和文档教程哦!想要搞定,搞透计算机操作系统的同学,本专栏将会通过模块化的分类,刷够1000道题,为大家提供点对点的考点相关知识轰炸!值得注意的是,本专栏将会通过教程+课后习题的方式来进行巩固教学,课后习题的题量也是算入总题数的哦!

    2022年10月20日
    2
  • AndroidAutoSize今日头条适配方案[通俗易懂]

    AndroidAutoSize今日头条适配方案[通俗易懂]最近公司没有什么事,闲来无聊,就研究一下今日头条的适配方案,不看不知道,真是一看吓一跳,快速上手而且还简单易懂,推荐一篇文章:http://www.wanandroid.com/blog/show/2343我也是看的这位大佬写的。今日头条适配只是一个基准,它是以宽或者高来进行适配的。今日头条的适配是通过修改Application/Activity等的DisplayMetrics…

    2022年5月3日
    480
  • JVM参数解析 Xmx、Xms、Xmn、NewRatio、SurvivorRatio、PermSize、PrintGC「建议收藏」

    -verbose:gc-XX:+printGC可以打印GC的简要信息[GC4790K-&gt;374K(15872K),0.0001606secs][GC4790K-&gt;374K(15872K),0.0001474secs][GC4790K-&gt;374K(15872K),0.0001563secs][GC4790K-&gt;374K(15872K),0.0…

    2022年4月16日
    57
  • 绘图软件origin使用总结_怎样学会速成画图

    绘图软件origin使用总结_怎样学会速成画图导入数据源excel或者.dat或者csv图。导入后默认一列是x,一列是y。要想改变,就右键点击如图。要想生成图,全选两列的数据,然后点击下方的某个图形,或者点plot咦,刚刚的图怎么不见了,不要着急,左侧有选择栏,点击可查看刚刚生成的颜色不好看没关系,线条不明显没关系,只需要双击图形,在跳出的菜单中修改即可这样好看多了吧想要拟合线段成公式,用matlab拟合太卡了,所以用origin自带的工具进行拟合按图选择fit函数,红色的线代表用选择…

    2022年9月16日
    1
  • 图层合并_cad图层怎么统一到一个图层

    图层合并_cad图层怎么统一到一个图层Arcgis合并线图层和面图层相同类型的图层合并数据管理工具——常规——合并。这个工具只能是线与线、面与面、点与点相同类型的图层合并。输入要合并的图层,设置输出的数据名称就可以了,非常简单。不同类型的图层合并“合并”这个工具只能用于相同类型的图层合并,不同类型的图层合并就要先把图层转为相同的类型。比如一个线图层,一个面图层,可以把线图层直接在转换工具中使用要素转面工具转为面图层,但是这时候我们发现属性表是空的,这样做是不正确的。下边介绍一种方法:线图层和面图层合并为线图层。1、线转栅格转换工

    2025年8月20日
    1
  • matlab分段函数怎么画图_关于MATLAB中分段函数的画法[通俗易懂]

    matlab分段函数怎么画图_关于MATLAB中分段函数的画法[通俗易懂]关于MATLAB中分段函数的画法最近拿到一题关于MATLAB的分段函数画法的题目,我在网上找了挺久,但没发现很多有用的资料.所以感觉很棘手.但是问题还是要解决,所以我就自己整理了些东西,不怕大家见笑.我把这些分段函数分为两类:一.对于y=f(x)这个模型来讲,一类是关于其中一个段是y为常量的一个模型,举例说明.例1.y={0,(x<0);1,(x>=0)};在x>-10&…

    2022年5月31日
    129

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号