码迷,mamicode.com
首页 > 其他好文 > 详细

c 字符串替换字符

时间:2019-03-12 18:34:44      阅读:204      评论:0      收藏:0      [点我收藏+]

标签:free   har   内存泄露   int   replace   strlen   str   替换   memset   

使用完释放记得内存free(str),防止内存泄露

char * replace (const char *str, const char *src, const char *dst)
{
const char* pos = str;
int count = 0;
while ((pos = strstr (pos, src))) {
count ++;
pos += strlen(src);
}

size_t result_len = strlen(str) + (strlen(dst) - strlen(src)) * count + 1;
char *result = (char *)malloc(result_len);
memset (result, 0, result_len);

const char *left = str;
const char *right = NULL;

while ((right = strstr(left, src))) {
strncat (result, left, right - left);
strcat (result, dst);
right += strlen(src);
left = right;
}
strcat(result, left);
return result;
}

c 字符串替换字符

标签:free   har   内存泄露   int   replace   strlen   str   替换   memset   

原文地址:https://www.cnblogs.com/wangjian8888/p/10518366.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!