功能解释:在一个字符串中找是否是另一个字符串的子字符串,如果是,贼将该位置返回。

如:有字符串:abcdeabc与abc,其中abc是abcdeabc的子字符串,所以,将字符串abcdeabc的受个相同位置返回,即第一个a的地址。

特点介绍:char* strstr(const char *p1,const char *p2)

从其中可以看出,函数的返回值是char*,其中俩个行参的类型为const char*(为了防止在函数运行中改变了原地址上的量)

注意事项:1.果然一个需要判断的字符串中出现了多个子字符串,则会返回第一个出现的字符串的首元素地址,比如俩个字符串abcdeabc与abc,返回的是首个abc中a的地址,如果用%s,打印,打印的是abcdeabc。

2.果然子字符串为NULL,则返回的就是该字符串(需要判断的字符串)。

模拟实现:

#include <stdio.h>
#include <string.h>
char* my_strstr(const char* p1, const char* p2)
{
    char* s1 = NULL;
    char* s2 = NULL;
    char* cur =(char*)p1;
    while (*cur)
    {
        s1 = cur;
        s2 = (char*)p2;
        while((*s1 == *s2)&&(*s1!='/0')&&(*s2!='/0'))
        {
            s1++;
            s2++;
        }
        if (*s2 == '\0')
            return cur;
        cur++;
    } 
    return NULL;
}
int main()
{
    char arr1[100] = "abcdef";
    char arr2[100] = "abc";
    char *p1=strstr(arr1, arr2);
    char *p2 = my_strstr(arr1, arr2);
    printf("strstr返回:%s", p1);
    printf("\n");
    printf("my_strstr返回:%s", p2);
    return 0;
}

对strstr函数的理解.相关推荐

  1. strstr函数的原理原来是这样的

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.strstr函数是什么? 二.strstr函数的参数及实现原理 1.参数 2.strstr函数的模拟使用 总结 前 ...

  2. strstr函数_[LeetCode] 28. 实现strStr()

    题目链接: https://leetcode-cn.com/problems/implement-strstr/ 题目描述 实现 strStr() 函数. 给定一个 haystack 字符串和一个 n ...

  3. C语言strstr函数实现

    自己实现C语言中的strstr函数,采用字符一个一个进行匹配,如果不等,则从下一个位置进行匹配. /* strstr 实现 */ char* mystrstr(const char* dest, co ...

  4. strstr函数和strtok函数的使用

    目录: strstr函数的使用 模拟实现strstr函数 strtok函数的使用 strstr函数定义:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该 ...

  5. 字符串函数剖析(3)---strstr函数

    1.strstr函数的巧妙 – 查找子字符串 1.1模拟实现strstr函数 strstr函数:在一个字符串中查找子串 学习新函数时,先去c库查找该函数的相关资料,更加助于你的学习 const cha ...

  6. strchr strstr函数php,PHP字符串函数之 strstr stristr strchr strrchr

    strstr -- 查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始. stristr -- strstr 函数的忽略大小写版本 strchr -- strstr 函数的别 ...

  7. strstr函数头文件_C语言(函数)学习之strstr strcasestr

    一.strstr函数使用 [1] 函数原型 char *strstr(const char *haystack, const char *needle); [2] 头文件 #include [3] 函 ...

  8. javascript 匿名函数的理解

    代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他 ...

  9. 如何用数学函数去理解机器学习?

    本文主要分享了如何基于数学函数原理去理解机器学习的本质,并简要介绍了机器学习的过程. 近期也是在做项目的过程中发现,其实AI产品经理不需要深入研究每一种算法,能了解机器学习的过程,这其中用到哪些常用算 ...

最新文章

  1. 想知道spring boot+cloud+docker的微服务体系架构如何使用吗?
  2. mongodb安装教程Linux,Ubuntu16.04手动安装MongoDB的详细教程
  3. 窗口分析函数_6_计算累加差
  4. CodeForces - 1355E Restorer Distance(三分)
  5. php判断参数_php检查函数必传参数是否存在的实例详解
  6. 面试被问到Java 静态代理/动态代理?不用怕,这样子就可以!!
  7. silklabo哪个公众号有资源_微小说免费渣渣团资源公众号看大全集
  8. Promise的链式调用三种写法,Promise.all与式调用
  9. 状态压缩动态规划 - 总结【普及+,提高-】
  10. Yarn分布式集群操作系统
  11. 两种模式的资源管理器代码之———— 删除文件夹
  12. C#中如何调用动态链接库DLL
  13. Windows 10原创知识题(第三版)
  14. 实验一计算机基础和网络知识竞赛,第十三届计算机基础知识竞赛题库.doc
  15. totolinkn200up怎么设置_TOTOLINK N600R V2路由器设置教程(图文)
  16. 深度学习(图像处理): A neural algorithm of artistic style算法详解
  17. 大话C语言——优化结构控制(一)
  18. 抖音获客源码,短视频获客系统,获客SaaS有标准答案吗?
  19. 【k8s】 k8s | 一 | 介绍
  20. 系统培训流程及注意事项,实操总节

热门文章

  1. 2019爪哇部落第十届新生选拔赛 题解
  2. 网络字体反爬之pyspider爬取起点中文小说
  3. 那些外卖cps饿了么一键领取最佳红包的公众号或者小程序怎么搭建?
  4. 算法导论第三版 第15章习题答案
  5. 52单片机与MH-Sensor-Series模块使用简单检测车轮转速
  6. Lotto POJ-2245
  7. Redis学习 - NoSQL简介、redis安装、redis基础知识、数据类型、持久化、订阅发布、主从复制、哨兵模式、缓存击穿和雪崩
  8. P1209 [USACO1.3]修理牛棚 Barn Repair
  9. abb机器人离线编程软件解密_一文看懂最新机器人离线编程软件【详细】
  10. css为何要清除浮动及清除浮动的方法