当前位置: 首页 > article >正文

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

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.kler.cn/a/384113.html

相关文章:

  • 湘潭大学软件工程专业选修 SOA 期末考试复习(二)
  • Swift 开发教程系列 - 第10章:泛型
  • 应用插件化及其进程关系梳理
  • hive表批量造数据
  • 123456
  • 揭秘全向轮运动学:机动艺术与上下位机通信的智慧桥梁
  • 《Java 实现堆排序:深入理解与代码剖析》
  • 如何选择适合的AWS EC2实例类型
  • VMWareTools安装及文件无法拖拽解决方案
  • SpringBoot之定时任务
  • 前端介绍|基础入门-html+css+js
  • Android View 的焦点控制基础
  • 【go从零单排】Strings and Runes 字符串和字符
  • 基于java+SpringBoot+Vue的宠物咖啡馆平台设计与实现
  • 进程和计划任务管理
  • MapReduce 的 Shuffle 过程
  • 基于matlab的人眼开度识别
  • 代码随想录 | Day38 | 动态规划 :01背包应用 目标和一和零
  • 【React.js】AntDesignPro左侧菜单栏栏目名称不显示的解决方案
  • 如何有效销售和应用低代码软件?探索其市场机会与策略
  • LabVIEW VISA通信常见问题
  • (三)使用Vite创建Vue项目,了解Vue3生命周期
  • MySQL如何实现PHP输入安全
  • PPT文件设置了修改权限,如何取消权?
  • 别名路径联想设置
  • 【每日一题】2012考研数据结构 - 求字符串链表公共后缀