strstr只能正向查找,那逆向查找呢?如果字符串很长呢?

文章介绍了一个自定义的C语言类,该类扩展了strstr函数的功能,支持逆向查找字符串并处理不确定长度的字符串。作者强调了C/C++中手动内存管理的重要性,并指出MFC的CString类在纯C或C++环境中的局限性。提供的类函数允许用户指定查找方向和偏移量,以更灵活地操作字符串。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

具体代码详见我上传的资源:


https://download.youkuaiyun.com/download/skyksksksksks/87473688

strstr这个C语言函数,相信大多数人都是烂熟于心了。

但是你会发现,其只能正向查找指定字符串,
如果是需要逆向查找指定字符串,那就有心无力了。

并且如果是很长的字符串呢,比如直接从文件读取的字符串,
长度也不确定,那怎么办呢?


要知道C++可不像别的语言会自动管理内存,内存的申请和释放都得自己手动操控的,
并且为了避免访问内存越界,还必须精确到以字节为单位的指定位置。

当然也有人会说,CString中有类似的功能,但那毕竟是MFC的类,
如果是要玩纯C、C++呢?
这里我自己写了一个类,核心部分只用了C语言,实现了以上功能。

类中函数声明见下方:

	/*
	@param
	pctszDataOfSour 源数据
	pctszDelimiter 分隔符
	lOperatorType 操作类型,1 正向查找、2 逆向查找
	lOffset 偏移(单位字节),0 无偏移、>0 向数据末尾偏移
	@return
	>=0 偏移(单位字节)(0 无偏移、>0 向数据末尾偏移)、-1 失败
	*/
	long StringFind(LPCTSTR pctszDataOfSour, LPCTSTR pctszDelimiter, long lOperatorType, long lOffset);

具体代码详见我上传的资源:


https://download.youkuaiyun.com/download/skyksksksksks/87473688

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

skyksksksksks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值