字符串替换, src 源字符串, buf_size 缓冲大小, search搜索的字符串大小, repstr 需要替换成的字符串

int str_replace(char *src, unsigned int buf_size, char* search, char *repstr)
{
if(!src || !search || !repstr|| buf_size < 0)
{
return -1;
} const unsigned int size = buf_size + 1024 ; char * temp = (char *)malloc(size);
memset(temp, 0x00, size); char * src_pos = src;
char * result = src;
char * dst_pos = temp; unsigned int length = 0; int search_len = strlen(search);
int rep_len = strlen(repstr); do
{
src_pos = strstr(src_pos, search); if(!src_pos)
{
strcpy(dst_pos, result);
length += search_len;
break;
} strncpy(dst_pos, result, src_pos - result);
dst_pos += src_pos - result; //replace
strcat(dst_pos, repstr);
dst_pos += rep_len;
length += src_pos - result + rep_len; src_pos += search_len;
result = src_pos;
}
while(src_pos); if(length >= buf_size)
{
free(temp);
temp = NULL; return -1;
}
else
{
_snprintf_c(src,buf_size,"%s", temp);
free(temp);
temp = NULL; return 0;
}
} int main(void)
{ char buf[512] ={"123%4235%%6723"};
printf("%s\n", buf);
str_replace(buf,512,"%","love");
printf("%s\n", buf); return 0;
}

结果输出:

123%4235%%6723
123love4235lovelove6723

str_replace字符串替换的更多相关文章

  1. php中的字符串常用函数 str_replace 字符串替换,替换全角空格

    <?php $str = "hello world!"; echo(str_replace(array('hello', 'world'), array('tom', 'cl ...

  2. PHP 字符串替换 substr_replace 与 str_replace 函数

    PHP 字符串替换 用于从字符串中替换指定字符串. 相关函数如下: substr_replace():把字符串的一部分替换为另一个字符串 str_replace():使用一个字符串替换字符串中的另一些 ...

  3. PHP字符串替换str_replace()函数4种用法详解

    mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )该函数返回一个字符串 ...

  4. php中几个字符串替换函数详解

    在php中字符替换函数有几个如有:str_replace.substr_replace.preg_replace.preg_split.str_split等函数,下面我来给大家总结介绍介绍. 一.st ...

  5. PHP 字符串替换

    这是2017上半年的第一篇学习笔记,也是最后一篇,捂脸- 在前几天的工作中,关于"银行卡"页面原型如下,其中,不同银行卡的卡号只保留了最后四位数字可以显示,其他数字均用*字符隐藏了 ...

  6. PHP字符串替换函数

    str_replace函数 描述:实现字符串替换,区分大小写 语法:mixed str_replace(mixed $search, mixed replace, mixed $subject, [i ...

  7. php字符串替换的几个函数

    strtr() str_replace() substr_replace() preg_replace() strtr()的用法: <?php $str = "test"; ...

  8. php实现字符串替换

    php实现字符串替换 一.总结 二.php实现字符串替换 代码一: //字符串替换 function str_replace($substr , $newsubstr, $str) { $m = st ...

  9. StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing the strings?

    StackOverFlow排错翻译 - Python字符串替换: How do I replace everything between two strings without replacing t ...

随机推荐

  1. Java问题定位之如何借助线程堆栈进行问题分析

    在大型的应用中,线程堆栈打印出来特别多,如何从众多的信息中找到真正有用,有价值的信息,我们需要一定的技巧.本文对此详细介绍. 我们可以从三个方面分析:堆栈的局部信息,一次堆栈的统计信息,多个堆栈的对比 ...

  2. 使用ajax实现简单的带百分比进度条

    需求:当进行文件上传保存等操作时,能在页面显示一个带百分比的进度条,给用户一个好的交互体验 实现步骤 JSP页面 1.添加table标签 <table id="load" w ...

  3. jshint-eclipse: JavaScript Code Quality Plugin for Eclipse

    https://blog.oio.de/2012/03/26/jshint-eclipse-javascript-code-quality-plugin-for-eclipse/   techscou ...

  4. 初识Python(四)

    一.数字数据类型 Python的数字数据类型用于存储数值,它是不可变的数据类型,这意味着改变数字数据类型,则需要一个新分配的对象: Python支持四种不同的数值类型: 整型(Int):通常被称为是整 ...

  5. cesium 动态水面效果

    后续继续更新

  6. Linux上mariadb数据库(博客初学者使用测试)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可.MariaDB由MySQL的创始人麦克尔·维德纽斯主导开发,他早前曾以10亿美元的价格,将自己创建的公司M ...

  7. linux命令之sed命令

    sed是一种流编辑器,它是文本处理中非常中的工具,能够完美的配合正则表达式使用,功能不同凡响.处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令 ...

  8. first 和firstordefault的用法 简介

    https://www.cnblogs.com/1312mn/p/9212325.html

  9. Python中的__name__和__main__含义详解

    1背景 在写Python代码和看Python代码时,我们常常可以看到这样的代码: ? 1 2 3 4 5 def main():     ......   if __name == "__m ...

  10. django2.2连接mysql遇到的坑

    1.mysql数据库配置 2.首先需要建一个myweb数据库 3.执行数据库迁移命令makemigrations python manage.py makemigrations MySite 报错: ...