[C语言]strstr函数的使用和模拟实现

devtools/2024/11/8 0:13:54/

1.strstr函数的使用

char * strstr ( const char *str1, const char * str2);

返回一个指向str1中str2第一次出现的指针,如果str2中没有str1则返回 NULL。。

实例:

#include <stdio.h>
#include <string.h>
int main()
{char str[] = "zhangsan lisi wanger";char* pch;pch = strstr(str, "lisi");puts(pch);return 0;
}

运行结果:

2.strstr函数的模拟实现

char* my_strstr(const char* str1, const char* str2)
{char* cp = (char*)str1;char* s1, * s2;if (!*str2)return((char*)str1);while (*cp){s1 = cp;s2 = (char*)str2;while (*s1 && *s2 && !(*s1 - *s2))s1++, s2++;if (!*s2)return(cp);cp++;}return(NULL);
}
int main()
{char str[] = "zhangsan lisi wanger";char* pch;pch = my_strstr(str, "lisi");puts(pch);return 0;
}


http://www.ppmy.cn/devtools/132159.html

相关文章

算法题求解-给定一个整数序列,要求将序列中所有负数都放于所有非负数之前

文章目录 1、问题描述2、功能实现 1、问题描述 给定一个整数序列&#xff0c;要求将序列中所有负数都放于所有非负数之前 2、功能实现 #include <iostream> #include <vector> #include <algorithm>using namespace std;// 函数原型声明 void rearrangeNeg…

【点击劫持漏洞(附测试代码)】

漏洞描述 点击劫持&#xff08;Clickjacking&#xff09;是一种网络攻击技术&#xff0c;攻击者通过将一个恶意的页面或按钮隐藏在合法网站的页面下&#xff0c;诱使用户在不知情的情况下点击隐藏的内容&#xff0c;从而触发攻击者设计的操作。这种攻击通常会导致用户无意中执…

C++中,`::`、`->` 和 `.`

C中&#xff0c;::、-> 和 . 在C中&#xff0c;::、-> 和 . 是用于访问成员&#xff08;如变量、函数等&#xff09;的不同操作符&#xff0c;它们分别用于不同的场景。以下是它们各自的作用和用法&#xff1a; 双冒号 :: (作用域解析操作符) 用于指定某个标识符&#x…

Android和iOS有什么区别?

Android 和 iOS 有以下区别&#xff1a; 开发者与所属公司&#xff1a; Android&#xff1a;由谷歌公司开发以及开放手机联盟维护。它是基于 Linux 内核和其他开源软件的修改版本&#xff0c;代码开源程度较高&#xff0c;许多厂商都可以基于 Android 源代码进行深度定制和开发…

Redis - String 字符串

一、基本认识 字符串类型是Redis最基础的数据类型&#xff0c;关于字符串需要特别注意&#xff1a; Redis中所有的键的 类型都是字符串类型&#xff0c;⽽且其他⼏种数据结构也都是在字符串类似基础上构建的&#xff0c;例如列表和集合的 元素类型是字符串类型&#xff0c;所…

Vue2 与 Vue3 的区别

Vue.js 作为流行的前端框架&#xff0c;已经经历了多次版本的更新迭代&#xff0c;从 Vue2 到 Vue3 的转变不仅带来了新的功能&#xff0c;也在性能、开发体验等方面作出了显著改进。无论是对于新手还是有经验的开发者&#xff0c;了解这两个版本之间的差异都至关重要。本文将讨…

OpenHarmony 入门——ArkUI 自定义组件间的父子双向同步状态装饰器@Link语法(四)

文章大纲 引言一、组件间状态装饰器Link 父子双向同步1、使用规则2、支持的观察变化的场景和ArkUI 刷新UI3、Link变量值初始化和更新机制3.1、初始渲染&#xff1a;执行父组件的build()函数后将创建子组件的新实例。3.2、Link的数据源的更新&#xff1a;即父组件中状态变量更新…

前沿快报|泛基因组在动植物研究中最新进展

上期&#xff0c;我们对泛基因组的起源发展、分析方法、重点关注研究内容等进行了介绍&#xff08;如何认识泛基因组&#xff1f;从单一到多元&#xff1f;&#xff09;&#xff0c;本期将继续关注泛基因组分析&#xff0c;从研究思路以及分析内容角度出发&#xff0c;小编整理…