趁着没发霉重写库函数之str_replace

本文深入分析了C++编程中用于字符串替换的源代码实现,包括核心逻辑、函数参数详解以及实际应用案例,旨在帮助开发者更深入地理解底层实现,提升编程技能。

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

//res 需要有足够的空间存储
int str_replace(char * src,char *substr,char * repstr,char *res)
{
	char *p_srcstr=src,*p_substr=substr,*p_repstr=repstr,*p_resstr=res;
	int sub_len = 0,count=0,flag=0;
	if(!src || !substr || !repstr || !res)
		return 0;
	if(strlen(src) < strlen(substr))
		return 0;
	sub_len = strlen(substr);
	while(*p_srcstr)
	{
		*p_resstr=*p_srcstr;
		if(*p_srcstr == *p_substr)
		{
			p_srcstr++;
			p_substr++;
			p_resstr++;
			printf("res1111=%s\n",res);
			if( sub_len == (p_substr-substr))
			{
				strncpy(p_resstr-sub_len,repstr,strlen(repstr));
				p_resstr += strlen(repstr)-sub_len;
				p_substr = substr;
				count ++;
			}
		}
		else
		{
			p_srcstr++;
			p_resstr++;
			p_substr = substr;
		}		
	}	
	return count;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值