//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;
}趁着没发霉重写库函数之str_replace
最新推荐文章于 2022-11-13 18:54:12 发布
本文深入分析了C++编程中用于字符串替换的源代码实现,包括核心逻辑、函数参数详解以及实际应用案例,旨在帮助开发者更深入地理解底层实现,提升编程技能。
573

被折叠的 条评论
为什么被折叠?



