模拟实现strstr 找到母串中是否有与子串相同的部分(代码)

cs 复制代码
//#模拟实现strstr
//char *strstr(const char *str1, const char *str2)
#include <stdio.h>
char* my_s(const char* str1, const char* str2)
{
	//用指针记录两个字符串的起始位置
	const char* s1 = str1;
	const char* s2 = str2;
	//指针记录字符串查找初次相等的位置
	const char* cur = str1;
	while (cur)
	{
		s1 = cur;
		s2 = str2;
		while (*s1 != '\0' && *s2 != '\0' && *s1 == *s2)//循环比较两个字符串
		{
			s1++;
			s2++;
		}
		//cur++;//s1 s2不相等时cur++, 相等时cur指向初次相等的位置不变
		if (*s2 == '\0')//找全相等的字符串  子串s2已经结束
		{
			return cur;
		}
		cur++;//s1 s2不相等时cur++, 相等时cur指向初次相等的位置不变
	}return NULL;//遍历完没有找到相同的字符串
}


int main()
{
	const char* str1 = "adbbbcef";
	const char* str2 = "bbc";
	char* ret;
	ret = my_s(str1, str2);
	printf("%s", ret);
	return 0;
}
相关推荐
AOwhisky12 分钟前
Python 学习笔记(第三期)——流程控制核心知识点自测与详解
开发语言·笔记·python·学习·云原生·运维开发·流程控制
我命由我123452 小时前
72 法则极简理解
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
xian_wwq3 小时前
【学习笔记】OpenAI 兼容 API 服务化:从协议到 LLM Gateway(19/35)
笔记·学习
烟锁池塘柳04 小时前
【C/C++】解决C++控制台输出中文乱码问题
c语言·开发语言·c++
醉城夜风~4 小时前
SQL DQL数据查询语言全套学习笔记(基础查询→执行顺序全解析)
笔记·sql·学习
范小多5 小时前
C#获取和风天气数据
java·开发语言·python·c#
小L~~~5 小时前
MLIR学习笔记
笔记·学习·mlir
z落落5 小时前
C# Task WaitAll、WaitAny、WhenAll、WhenAny
开发语言·c#
捷瑞电子工坊6 小时前
C语言联合体(Union)——让同一块内存“变脸”
c语言·union·联合体·内存共享
阿哟阿哟6 小时前
Ansys Electronics Desktop(hfss)仿真PCB(AD)
笔记