strstr()函数用于:查找子字符串

目录

函数介绍

用法示例

函数讲解

实现函数

事例展示

函数介绍

函数声明:char *strstr(const char *str1, const char *str2)

头  文  件:#include <string.h>
返  回  值: 返回值为char * 类型( 返回指向 str1 中第一次出现的 str2 的指针);如果 str2 不是 str1 的一部分,则返回空指针。

用法示例

#include <stdio.h>
#include <string.h>
int main()
{char str[] = "This is a simple string";char* pch;pch = strstr(str, "simple");if (pch != NULL)strncpy(pch, "sample", 6);puts(str);return 0;
}

函数讲解

实现函数 

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

事例展示

#include <stdio.h>
#include <string.h>
#include<assert.h>
char* My_strstr(const char* str1, const char* str2)
{assert(str1 && str2);const char* s1 = str1;const char* s2 = str2;const char* p = str1;while (*p!='\0'){s1 =p ;s2 = str2;while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2){s1++;s2++;}if (*s2 == '\0'){return (char*)p;}p++;}return NULL;
}
int main()
{char str[] = "This is a simple string";char* pch;pch = My_strstr(str, "simple");if (pch != NULL)strncpy(pch, "sample", 6);puts(str);return 0;
}

strstr函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )相关推荐

  1. strtok函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用)

    strtok()函数用于: 将字符串拆分为标记 函数介绍 函数声明:char * strtok ( char * str, const char * delimiters ); 头  文  件:#in ...

  2. memmove函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )

    memmove()函数用于:移动内存块 函数介绍 函数声明:void * memmove ( void * destination, const void * source, size_t num ) ...

  3. strncpy函数详解看这一篇就够了-C语言(函数实现、使用用法举例、与strcpy的区别)

    首先要明确strncpy的功能是:拷贝src字符串的前n个字符至dest 目录 函数介绍 与strcpy的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型: char *strncpy(c ...

  4. strcat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strncat的区别)

    首先要明确strcat的功能是:将参数dest字符串和参数src字符串拼接起来 目录 函数介绍 与strncat的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:char* strcat ...

  5. memcpy函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)

    memcpy()函数用于:复制内存块 函数介绍 函数声明:void * memcpy ( void * destination, const void * source, size_t num ); ...

  6. strerror函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)

    strerror()函数用于:获取指向错误消息字符串的指针 函数介绍 函数声明: char * strerror ( int errnum ); 头  文  件:#include <string ...

  7. strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)

    首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小 目录 函数介绍 与strcmp的区别 ACSII表 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:int strncmp( ...

  8. strncat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcat的区别)

    首先要明确strncat的功能是:从字符串src的开头拷贝n个字符到dest字符串尾部 目录 函数介绍: 与strcat的区别 函数实现: 用法示例: 结果展示: 函数介绍: 函数原型:char* s ...

  9. 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了

    6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...

最新文章

  1. 后bat时代,字节未来超越at也不是没可能
  2. 经常使用的MySQL语句整理
  3. 《BREW进阶与精通——3G移动增值业务的运营、定制与开发》连载之76——BREW中的安全性网络编程...
  4. 你真的会玩SQL吗?内连接、外连接
  5. Flask框架(1.flask概述,Windows配置 virtualenv虚拟环境步骤和路由以及视图函数的定义)
  6. undefined: resolver.BuildOption undefined: resolver.ResolveNowOption 报错的解决办法
  7. mybatisplus执行sql语句_一条更新的SQL语句是如何执行的?
  8. Final Michael Scofield
  9. linux gd结构体,U-Boot中gd的定义和使用
  10. 采访前高级软件工程课程学员付浩同学,及Scrum总结阅读感想
  11. 4.0之后的hibernate获取sessionFactory
  12. Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
  13. python的作用域分别有几种_Python作用域和命名空间
  14. 国军标GJB150.8A-2009淋雨试验第三方检测机构
  15. oracle 建表sql语句,oracle 建表sql语句
  16. dpkg: 依赖关系问题使得 sdkmanager 的配置工作不能继续: sdkmanager 依赖于 libgconf-2-4;然而: 未安装软件包 libgconf-2-4。 [已解决]
  17. 小菜鸟学浏览器之感悟
  18. 高通,MTK,紫光展锐 CPU超大核,大核,小核分布查询 以及绑定
  19. 基于脚手架 3 分钟搞定 SpringBoot 后端管理项目
  20. 【Verilog七段译码器】

热门文章

  1. 基于JAVA模拟考试系统计算机毕业设计源码+数据库+lw文档+系统+部署
  2. 使用Python实现对excel数据的处理
  3. 微信小程使用getCurrentPages函数操作父级数据
  4. 递归解决卖鸭子问题和验证角谷定理
  5. 主板灯亮, 按POWER键无反应, 风扇不转, 无法开机
  6. 在word中添加mendeley插件
  7. uni-app 日历、提醒事项 添加日程和提醒(ios)
  8. python模块之HTMLParser简介
  9. 华东师范大学 数据科学与工程 829 2021考研真题
  10. 7-2 查找书籍 (20 分)