字符串查找函数strstr

2023-05-16

函数结构:char *strstr(const char*str1,const char*str2)

功能:在字符串str1中查找是否存在str2字符串       

  返回值:该函数返回str2在str1中首次出现的地址;若不存在,返回NULL。

原理:首先断言两个字符串非空,定义两个指针分别指向两个字符串的首地址,判断第一个字母是否相等,若相等则指针分别加一,直到str2为‘\0’。由于要返回str2在str1中首次出现的地址,所以需要事先定义两个临时指针temp1,temp2分别指向是s1,s2的首地址,用临时指针移动判断。若str2为‘\0则返回s1的首地址,例如(hello与he)s1,s2分别指向hello和he的h,首字母相等,temp1和temp2分别向前移动,直到str2字符串结束,则返回str2在str1中首次出现的地址即hello。若*s1和*s2不相等,则s1加一,继续判断。例如(hello与 el)h和e不相等,s1向前移动e字母两者相等继续上面步骤判断。若未找到则返回null。

char* my_strstr(const char* str1,const char* str2)
{
    assert(str1 != NULL&&str2 != NULL);
     const char* s1 = str1;
     const char* s2 = str2;
    while (*s1!='\0')
    {
        const char*temp1 = s1;
        const char*temp2 = s2;
        while (*temp1 !=NULL&&*temp2!=NULL&&*temp1 == *temp2)
        {
            temp1++;
            temp2++;
        }
        if (*temp2 == '\0')
        {
            return s1;
        }
        s1++;
    }
    return NULL;
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

字符串查找函数strstr 的相关文章

  • ROS安装——rosdep init、rosdep update失败解决方案

    综述 按照ROS官方论坛的步骤 xff0c 安装ROS的最后几个步骤是 sudo rosdep init rosdep update 但是偶尔因为网络问题出现失败的问题 xff0c 本文记录本人在安装ROS过程中的解决方法 sudo ros
  • AC源码

    字符串算法 一级目录 一级目录 下面展示一些 内联代码片 关于aoti函数的实现 xff1a 1 xff1a 空白符 2 xff1a 正号和负号 3 xff1a 关于进制 xff1a 4 xff1a 溢出的问题 xff1b 用到库函数 xf
  • FreeRtos使用注意(基础知识)

    关于中断 NVIC PriorityGroupConfig NVIC PriorityGroup 4 中断优先级设置为0 15级抢占优先级 xff0c 0子优先级 这个也是官方强烈建议的 其中中断优先级0 15级 xff0c 0的优先级是最
  • 【点云数据集】

    点云数据集汇总整理 1 点云分类和分割 1 1 ModelNet40 xff08 点云分类 xff09 普林斯顿 ModelNet 项目的目标是为计算机视觉 计算机图形学 机器人学和认知科学领域的研究人员提供全面 干净的对象 3D CAD
  • ROS下UWB串口数据读取,并以话题的形式发布

    ROS串口读取UWB定位数据 xff0c 以话题的形式发布 include span class token operator lt span ros span class token operator span ros span clas
  • ubuntu环境下启动rosrun rqt_tf_treerqt_tf_tree出现错误的问题

    ubuntu下安装anconda3后启动rqt tf tree会报错 xff0c 信息为 xff1a 原因是安装rospy使用的是python2 但是anconda会把系统的python设置成python3 做法是在不改变anconda安装
  • 上层应用开发是否真的没有底层开发有前途?

    首先明确什么是底层开发 xff0c 这个界限很难划分 xff0c 有人说搞音视频底层编解码就是底层了 xff0c 但是我们看来不是这样 xff0c 下面还有rom中音视频模块 xff0c 再下面还有driver xff0c 最后到物理硬件
  • python http的请求和响应

    span class token triple quoted string string 34 34 34 http请求 请求行和空行是必须要有的 xff0c 请求体和请求头可以没有 请求格式 xff1a 请求行 xff0c 请求头 xff
  • ROS学习篇第(六)篇:通信

    目录 串口通信 ros serial 包的使用ROS分布式多机通信 ssh的使用 xff11 目的2 关于SSR3 实现4 问题 串口通信 ros serial 包的使用 下载 span class token function sudo
  • 小觅双目立体避障模组新品发布,发力AGV物流领域

    2019年9月17日 xff0c 第二十一届中国国际工业博览会 xff0c 在上海国家会展中心正式拉开帷幕 以 立体视觉技术提供商 身份参展本届工博会的MYNTAI小觅智能在展会现场发布了旗下首款针对AGV量身定制的小觅双目立体避障模组 2
  • 小觅双目摄像头深度高精版发布,精度可达毫米级

    今天 xff0c 第二十一届中国国际工业博览会 xff0c 在上海国家会展中心正式拉开帷幕 以 立体视觉技术提供商 身份参展本届工博会的MYNTAI小觅智能 xff0c 携其小觅深度摄像头旗下深度系列新品小觅双目摄像头深度高精版惊喜亮相 自
  • AGV搬运机器人「眼睛」的未来:3D视觉导航方案

    搬运机器人是可以进行自动化搬运作业的工业机器人 xff0c 也就是人们常提到的AGV 自动引导车 中的一个主流大类 随着工厂自动化 计算机集成制造系统技术逐步发展 xff0c 以及柔性制造系统 自动化立体仓库的广泛应用 xff0c AGV搬
  • 小觅双目摄像头标准版视觉惯性 SLAM DEMO

    说到 vins xff0c 就很难不让人想起另一个通过视觉与 imu 融合的经典 OKVIS 它是由 Stefan Leutenegge 等人提出的基于双目 43 惯导的视觉里程计 xff0c 属于 VIO Visual Inertial
  • 小觅智能 | OKVIS 学习笔记

    上一期的视觉里程计 xff0c 让我们想到了 OKVIS xff0c 知乎上的讨论也比较少 xff0c 小觅智能来分享一下 OKVIS 基本介绍 它是由 Stefan Leutenegge 等人提出的基于双目 43 惯导的视觉里程计 xff
  • 小觅双目摄像头标准彩色版发布 为移动机器人视觉导航避障优化设计

    2019年1月15日 xff0c 小觅智能发布了其双目深度相机系列旗下全新产品小觅双目摄像头标准彩色版 xff08 简称标准彩色版 xff0c 下同 xff09 小觅双目摄像头 标准彩色版 xff08 MYNT EYE S Color xf
  • Vins-Fusion 学习笔记

    VINS Fusion 基本介绍 VINS Fusion 是继 VINS Mono 和 VINS Mobile xff08 单目视觉惯导 SLAM 方案 xff09 后 xff0c 香港科技大学沈劭劼老师开源的双目视觉惯导 SLAM 方案
  • 我是如何通过阿里面试的?

    笔者参加18年阿里春招 xff0c 有幸最终拿到阿里offer xff0c base杭州 xff0c 岗位客户端开发 一直忙于其他事情 xff0c 拿到意向已经过去十多天 xff0c 在此分享一些关于面试的干货 xff0c 攒一波RP xf
  • 运行msckf_vio

    MSCKF vio是一种基于多状态约束卡尔曼滤波器的双目视觉里程计 其中多状态约束是指将多帧图像的相机位姿加入卡尔曼状态向量中 xff0c 在进行卡尔曼增益之前通过多帧图像之间的约束进行最小二乘优化来估计特征点的空间位置 xff0c 然后根
  • 建图 | SVO 论文与代码分析分讲

    建图 xff08 深度滤波器 xff09 VO 把像素的深度误差模型看做概率分布 xff0c 使用 高斯 均匀混合分布的逆深度 xff08 深度值服从高斯分布 xff0c 局外点的概率服从 Beta 分布 xff09 xff0c 称为 深度
  • 机房黑科技:京东数科机房巡检机器人

    6月11日 xff0c 第五届CES Asia亚洲消费电子展在上海正式开幕 京东数字科技携旗下多款机器人产品参展 xff0c 并正式发布了多款全新的智能机器人 其中 xff0c 室内运送机器人可以自主乘坐电梯 xff0c 并能自动导航 避障

随机推荐