对strstr函数的理解.
功能解释:在一个字符串中找是否是另一个字符串的子字符串,如果是,贼将该位置返回。
如:有字符串: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函数的理解.相关推荐
- strstr函数的原理原来是这样的
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.strstr函数是什么? 二.strstr函数的参数及实现原理 1.参数 2.strstr函数的模拟使用 总结 前 ...
- strstr函数_[LeetCode] 28. 实现strStr()
题目链接: https://leetcode-cn.com/problems/implement-strstr/ 题目描述 实现 strStr() 函数. 给定一个 haystack 字符串和一个 n ...
- C语言strstr函数实现
自己实现C语言中的strstr函数,采用字符一个一个进行匹配,如果不等,则从下一个位置进行匹配. /* strstr 实现 */ char* mystrstr(const char* dest, co ...
- strstr函数和strtok函数的使用
目录: strstr函数的使用 模拟实现strstr函数 strtok函数的使用 strstr函数定义:strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串.如果是,则该 ...
- 字符串函数剖析(3)---strstr函数
1.strstr函数的巧妙 – 查找子字符串 1.1模拟实现strstr函数 strstr函数:在一个字符串中查找子串 学习新函数时,先去c库查找该函数的相关资料,更加助于你的学习 const cha ...
- strchr strstr函数php,PHP字符串函数之 strstr stristr strchr strrchr
strstr -- 查找字符串的首次出现,返回字符串从第一次出现的位置开始到该字符串的结尾或开始. stristr -- strstr 函数的忽略大小写版本 strchr -- strstr 函数的别 ...
- strstr函数头文件_C语言(函数)学习之strstr strcasestr
一.strstr函数使用 [1] 函数原型 char *strstr(const char *haystack, const char *needle); [2] 头文件 #include [3] 函 ...
- javascript 匿名函数的理解
代码如下: (function(){ //这里忽略jQuery所有实现 })(); (function(){ //这里忽略jQuery所有实现 })(); 半年前初次接触jQuery的时候,我也像其他 ...
- 如何用数学函数去理解机器学习?
本文主要分享了如何基于数学函数原理去理解机器学习的本质,并简要介绍了机器学习的过程. 近期也是在做项目的过程中发现,其实AI产品经理不需要深入研究每一种算法,能了解机器学习的过程,这其中用到哪些常用算 ...
最新文章
- 想知道spring boot+cloud+docker的微服务体系架构如何使用吗?
- mongodb安装教程Linux,Ubuntu16.04手动安装MongoDB的详细教程
- 窗口分析函数_6_计算累加差
- CodeForces - 1355E Restorer Distance(三分)
- php判断参数_php检查函数必传参数是否存在的实例详解
- 面试被问到Java 静态代理/动态代理?不用怕,这样子就可以!!
- silklabo哪个公众号有资源_微小说免费渣渣团资源公众号看大全集
- Promise的链式调用三种写法,Promise.all与式调用
- 状态压缩动态规划 - 总结【普及+,提高-】
- Yarn分布式集群操作系统
- 两种模式的资源管理器代码之———— 删除文件夹
- C#中如何调用动态链接库DLL
- Windows 10原创知识题(第三版)
- 实验一计算机基础和网络知识竞赛,第十三届计算机基础知识竞赛题库.doc
- totolinkn200up怎么设置_TOTOLINK N600R V2路由器设置教程(图文)
- 深度学习(图像处理): A neural algorithm of artistic style算法详解
- 大话C语言——优化结构控制(一)
- 抖音获客源码,短视频获客系统,获客SaaS有标准答案吗?
- 【k8s】 k8s | 一 | 介绍
- 系统培训流程及注意事项,实操总节
热门文章
- 2019爪哇部落第十届新生选拔赛 题解
- 网络字体反爬之pyspider爬取起点中文小说
- 那些外卖cps饿了么一键领取最佳红包的公众号或者小程序怎么搭建?
- 算法导论第三版 第15章习题答案
- 52单片机与MH-Sensor-Series模块使用简单检测车轮转速
- Lotto POJ-2245
- Redis学习 - NoSQL简介、redis安装、redis基础知识、数据类型、持久化、订阅发布、主从复制、哨兵模式、缓存击穿和雪崩
- P1209 [USACO1.3]修理牛棚 Barn Repair
- abb机器人离线编程软件解密_一文看懂最新机器人离线编程软件【详细】
- css为何要清除浮动及清除浮动的方法