参考https://www.linuxidc.com/Linux/2010-12/30741.htm
修改了一个bug 如 respacestr("123456","123","1234") 会逻辑卡死
/**
* @n 字符串替换
* @p sdev source string
* @p strs string
* @p strr replace string
* */
char * respacestr(char * sdev,char * strs,char * strr)
{
char *p,*a;
int lens = strlen(strs),lenr;
int len;
int off=0;
int slen = strlen(sdev);
if(strr == NULL) lenr = 0;
else lenr = strlen(strr);
len = lenr - lens;
a = sdev;
while((p = strstr(a,strs))!=NULL)
{
LOG("%d - %s\n",slen,sdev);
if(len > 0) {
sdev = (char *)realloc(sdev,slen+len);
p = strstr(a,strs);
memmove(p+lenr,p+lens,strlen(p+lens));
memcpy(p,strr,lenr);
} else if(len == 0) {
memcpy(p,strr,lenr);
} else {
memmove(p+lenr,p+lens,strlen(p+lens));
if(lenr!=0) memcpy(p,strr,lenr);
}
a = p + lenr + 1;
slen += len;
}
*(sdev+slen) = 0;
return sdev;
}