C语言字符串替换函数

今天开发时遇见一个需要替换字符串的操作

大致的需求如下:实现一个字符串替换函数strreplace(char* str, char* sub, char* rep) ,str为原字符串,sub是待替换的字符串,rep为替换字符,sub可长可短,rep可长可短。

主要要考虑的是sub小于rep时,str的buf不够的情况

看了网上一些人的实现,也写了代码测试,结果发现基本都不可用,主要有几个关键点

1、原字符串中有多个需要替换时,代码仅替换了第一个

2、几乎所有的实现代码都没有对入参做安全检查

3、使用malloc动态分配时计算的方法不正确,导致分配的空间变少,产生段错误

于是我自己实现了一个,经过了自测,只是最大的buf是512如果要用更大的话就自己加大吧

 

发表评论

邮箱地址不会被公开。 必填项已用*标注