【C语言】模拟实现strstr

C语言之strstr函数的使用和模拟实现 strstr函数的使用和模拟实现 阅读详情

1.函数strstr的功能

   strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。该函数返回字符串的其余部分(从匹配点)。找不到则返回错误

2.模拟实现

    

#include<stdio.h>
#include<string.h>

char* my_strstr(const char *dest, const char *src)  
{
	const char *pdest = dest;
	char *s1, *s2;
	if (!(*src))        //如果传进来空字符串则返回源字符串
	{
		return (char *)dest;
	}
	while (*pdest)
	{
		s1 = (char *)pdest;
		s2 = (char *)src;
		while ((*s1) && (*s2)&&(*s1 == *s2))  //从第一个字符相等的地方使指针向后移
		{
			s1++;
			s2++;
		}
		if (*s2 == '\0')  
		{
			return (char *)pdest;
		}
		pdest++;
	}
	return NULL;
}

int main()
{
	char* ret=my_strstr("student", "den");
	if (ret != NULL)
	{
		printf("%s", ret);
	}
	else
	{
		printf("false");
	}
	getchar();
	return 0;
}
更多库函数模拟实现请参考: 模拟实现strrchr,strrstr,strchr

vivado下ECO操作-不重新综合实现修改属性并生成.bit ECO即engineer change order,即工程变更指令,可以对设计做局部小改动并只对改动部分重新布局布线并生成.bit。在一个工程动辄编译几个小时情况下,可以在调试中节省大量时间。比如我们在调试中,需要改变时钟占空比或者相位,需要改变寄存器初值等等,此时用ECO暂时改动,待验证后在重新编译无疑是最有效率的方法。 实现ECO通常有两种方式,一是通过vivado界面完成,另一种方法就是tcl脚本。所有的ECO操作都可以通过tcl操作完成,有的操作用vivado界面无法完成,只能通过tcl。以下主要 阅读详情

相关推荐

中国30米逐年植被净初级生产力(NPP)数据集(1982年至今CASA模型)

1.3 气温、降水、地表太阳辐射数据 气温和降水数据月度空间插值数据是基于全国2400多个站点的日观测数据,在计算各气象要素月值的基础上,基于Anusplin软件插值生成的1982年以来各月度30米分辨率气温和降水栅格数据,插值过程中引入高程作为协变量。气温单位为℃,降水单位为mm。1.2 土地覆盖数据 土地覆盖数据来源于1985 年-2020年全球30米精细地表覆盖动态监测产品,该数据集包含29个地表覆盖类型,进行拼接、裁剪、重分类和重采样处理,获得8期250米分辨率的植被类型数据。

地球资源数据云的官方博客 2839

C语言实现strstr

1.strstr介绍 char* strstr( const char* str1, const char* str2 ); str1为以'\0'结束的被查找的字符串 str2为以'\0'结束的要查找的字符串 2.如何使用 被查找字符串:"abcdefabcdef" 要查找字符串:"def" strstr返回值为字符串地址:从被查找的字符串中 第一次出现 要查找的字符串的位置 向后打印 3.strstr的实现 #include<stdio.h> #include&.

Hello_World_213的博客 1898

逆向攻防世界CTF系列40-ReverseMe-120

注意sub_401000main中只传了两个参数,但是跟进后发现四个(可能是隐式传递,放在寄存器里传递了),调试发现a4是输入长度,与最终的you_know_how_to_remove_junk_code比较的是v12(但是并没有被传入),开始怀疑是不是隐式传递了。_mm_xor_si128用于计算128位(16字节)的按位异或,然后通过v14控制循环结束的条件,可以看到v14增长的步长为16,而且通过上面得到的flag值解码得到的字符串为32个字节大小,正好是16的整数倍。

LH1013886337的博客 1411

实现c语言中的strstr函数

实现c语言中strstr函数的功能

akemanaaa的博客 1631

手把手教你用nRF52832+RFX2401C设计远距离蓝牙模块(附完整原理图/PCB文件)

本文详细介绍了如何利用nRF52832 SoC与RFX2401C射频前端芯片设计远距离蓝牙模块,涵盖芯片选型、阻抗匹配、PCB布局等关键环节。通过实战指南和完整原理图/PCB文件,帮助工程师实现输出功率可达20dBm的蓝牙模块设计,适用于智能家居、运动追踪等物联网应用。

weixin_29214199的博客 287

DiffusionDriveV2 (1) : 端到端自动驾驶中受强化学习约束的截断扩散建模

DiffusionDriveV2:强化学习约束的截断扩散模型在端到端自动驾驶中的应用 本文针对端到端自动驾驶中扩散模型面临的模式崩溃问题,提出DiffusionDriveV2框架。该方法通过引入强化学习约束,解决了DiffusionDrive依赖模仿学习导致的多样性与持续高质量之间的困境。主要创新包括: 采用尺度自适应乘法噪声促进广泛探索 提出锚点内GRPO管理单个锚点样本间的优势估计 设计锚点间截断GRPO整合全局视角,避免不同驾驶意图间的不当比较 实验表明,该方法在NAVSIM基准测试中达到最先进水平(

@bangbang的博客 382

c语言strstr的使用及模拟实现strstr函数

c语言strstr的使用及模拟实现strstr函数

qq_55256601的博客 2207

GStreamer中h264parse元素

h264parse是 GStreamer 中处理 H.264 视频流的关键元素,主要负责解析和准备 H.264 流以便后续处理。

深之JohnChen的专栏 1029

用C语言实现 strstr() 函数

我的代码: #include <stdio.h> char* my_strstr(const char* p1, const char* p2); int main() { char a[20] = {'\0'}; gets_s(a); char b[20] = {'\0'}; gets_s(b); printf("%s",my_strstr(a, b)); return 0; } char* my_strstr(const char* p1, const char*

朴矢的博客 1863

【FISCO BCOS】二十、多机部署区块链

实际开发中,为了满足高可用性和高容错性的需求,往往会采用多级部署区块链的方式,今天介绍一下FISCO BCOS的多机部署流程。

naihe_fish的博客 3655

【气候极端指数】MATLAB计算各种气候极端指数

简介各类气候极端指数,及其MATLAB计算代码

WW、forever的博客 4917

C语言实现strstr函数

strstr()函数在库函数String.h中,作用是找到目的串中和源字符串匹配成功时的首地址。例:在串abcde中找cd,找到位置是在第二个字符(下标为0~4)开始的。返回下标为2的地址。至于为什么会打印cde,是因为%s,它会打印字符串,直到遇到\0结束。

qq_62381986的博客 421

5、模糊风险评估

本文介绍了基于模糊逻辑的风险评估方法,探讨了如何在不确定、不完整信息环境下进行高效的风险分析。文章涵盖了模糊集合与隶属度函数的基本概念、模糊推理系统的流程,并结合犯罪风险、金融风险和医疗诊断等实际案例,展示了模糊风险评估的应用价值和技术细节。此外,还介绍了模糊贝叶斯网络、模糊综合评价等进阶工具与方法,为多领域风险管理提供了理论支持和实践指导。

mango的博客 182

C语言 strstr函数的用法及模拟实现strstr函数

C语言 strstr函数的用法及模拟实现strstr函数一、strstr函数的用法二、模拟实现strstr函数的功能 一、strstr函数的用法 1.strstr函数原型:char* strstr(const char* str1,const char* str2) 2.功能:strstr()是一个参数为两个字符指针类型,返回值是char*类型的函数,它用于找到子串(str2)在一个字符串(str1)中第一次出现的位置。这里因为传进来的地址指向的内容不会在发生改变,所以我们在两个形参(char*)前加上c

weixin_62677583的博客 3万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

C语言库函数strstr的模拟实现

大家好,这次为大家介绍的是库函数strstr的模拟实现。库函数strstr用于在一个字符串中查找另一个字符串第一次出现的位置。

2201_76113731的博客 540

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

c语言strstr函数的模拟实现

strstr函数的模拟实现

cwz456917315的博客 398

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

【C语言】库函数strstr的模拟实现

赋给指针begin的起始地址为 str1, 使得指针s1从begin开始移动,同时使得s2从str2开始移动,将s1指向的内容与s2指向的内容进行比较, 如果s1 不等于 s2, 则使begin++,s1从begin指向的位置开始向后移动,而s2返回起始位置(str2)开始移动,继续进行一一比较。即在字符串str1中查找字符串str2,并返回在str1中第一次遇到str2时的地址。说明:将两个字符串中的字符进行一一比较,找到要查找的字符串。有这种算法,在一个字符串中找到另一个字符串,代码更高效。

2302_79531041的博客 1113

模拟实现C语言--strstr函数

模拟实现strstr函数

Senyu_nuanshu的博客 441

day16_3_C语言_模拟实现strstr

#include<stdio.h> #include<assert.h> char* my_strstr(const char* p1, const char* p2) { assert(p1 != NULL); assert(p2 != NULL); //直接用p1,p2,会找不到字符串的起始地址 char* s1 = p1;//例子abbbcdef char* s2 = p2;//例子bbc char* cur = (char*)p

aiqq136的博客 115

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

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

2303_77060768的博客 333

C语言模拟实现strstr函数

思路是建立两个循环,外层循环控制指针在源字符串中进行向后移动,内层循环控制与源字符串某个字符的地址相同的目标字符串指针和源字符串该字符指针不断向后移动比较。比如源字符串“123456”和目标字符串“456”,当外层循环指针移动到字符4的地址时,内层循环指针同时开始目标字符串中移动,经过456字符的比较,如果目标字符串指针移动到‘\0’,则说明查找成功。该函数是进行字符串截取的,将需截取的字符串中的目标字符串的第一次出现的首地址返回,如果需要得到某个特定的字符串需要多次截取。

sniper_fandc的博客 402

c语言模拟实现库函数 strlen strcpy strcat strcmp strstr

解释:strlen 是求字符串长度的,求出的长度是不可能为负数 所以返回类型设置为size_t也是合情合理的 typedef unsigned int size_t\字符串已经 '\0' 作为结束标志,strlen函数返回的是在字符串中 '\0' 前面出现的字符个数(不包含 '\0' )。参数指向的字符串必须要以 '\0' 结束。注意函数的返回值为size_t,是无符号的strlen("abc")-strlen("abcdef") 3- 6 结果仍然是3。

2402_86583623的博客 877

【C语言】strstr函数的使用和模拟实现

Returns a pointer to the first occurrence of str2 in str1, or a null pointer if str2 is not part of str1.(函数返回字符串str2在字符串str1中第⼀次出现的位置)。(字符串的⽐较匹配不包含\0字符,以\0作为结束标志)。

weixin_52978505的博客 614

C语言模拟实现strstr

 //模拟实现strstr    概述:             //strstr表示查找一个字符串是否是另一个字符串的子集    解题思路:                  1&gt; 在主函数数中进行判断,若返回值为1,说明有相同的字符串,并打印,若返回值为0,没有找到相同的字符串,输出没有找到!;                  2&gt; 若找到源字符串中一个字符与目的字符串...

Sun_student的博客 498

模拟实现strstr函数(c语言)

strstr函数查找子串的一个函数。

qq_56294106的博客 115

c语言之strstr函数与模拟实现

用法用文字表示是 strstr(char* 被查找数组,const char* 要查找数组);功能是在被查找数组中查找要查找数组的字符串,并返回这个字符串在被查找数组中的地址。我用图片示例。

Chanpho的博客 454
上一篇: 【C++】 引用学习
下一篇: 【C++】实现万年历
pointer_y
博客等级 码龄11年 157粉丝 107原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值