1. global.h中添加代码
  2.  
  3. /*
  4.  
  5. * @param char* dest 目标串,也就是替换后的新串
  6. * @param const char* src 源字符串,被替换的字符串
  7. * @param const char* oldstr 旧的子串,将被替换的子串
  8. * @param const char* newstr 新的子串
  9. * @param int len 将要被替换的前len个字符
  10.  
  11. */
  12.  
  13. char *lr_strreplace(char *dest, char *src, const char *oldstr, const char *newstr, size_t len){
  14.  
  15. char *needle;  //子串位置指针
  16.  
  17. char *tmp; //临时内存区
  18.  
  19. //如果串相等,则直接返回
  20. if(strcmp(oldstr, newstr)==0){   
  21.  
  22. return src;
  23. }
  24.  
  25. dest = src;   //把源串地址赋给指针dest,即让dest和src都指向src的内存区域
  26.  
  27. //如果找到子串, 并且子串位置在前len个子串范围内, 则进行替换, 否则直接返回
  28. while((needle = (char *) strstr(dest, oldstr)) && (needle -dest <= len)){
  29.  
  30. //分配新的空间: +1 是为了添加串尾的'\0'结束符
  31. tmp=(char*)malloc(strlen(dest)+(strlen(newstr)-strlen(oldstr))+1);
  32.  
  33. strncpy(tmp, dest, needle-dest);  //把src内的前needle-dest个内存空间的数据,拷贝到arr
  34.  
  35. tmp[needle-dest]='\0';  //标识串结束
  36.  
  37. strcat(tmp, newstr);  //连接arr和newstr, 即把newstr附在arr尾部, 从而组成新串(或说字符数组)arr
  38.  
  39. strcat(tmp, needle+strlen(oldstr));  //把src中 从oldstr子串位置后的部分和arr连接在一起,组成新串arr
  40.  
  41. dest = (char *)strdup(tmp);  //把用malloc分配的内存,复制给指针retv
  42.  
  43. free(tmp);   //释放malloc分配的内存空间
  44.  
  45. }
  46.  
  47. return dest; 
  48.  
  49. }

在Action中调用

  1. Action()
  2. {
  3. //11041331","11041372","11041373","11041374
  4. //11041331|11041372|11041373|11041374
  5.  
  6. char *str;
  7.  
  8. char *old="\",\"";  //需要替换的字符串","
  9.  
  10. char *new="|";  
  11.  
  12. char *dest;
  13.  
  14. lr_save_string("11041331\",\"11041372\",\"11041373\",\"11041374", "src");
  15.  
  16. str=lr_eval_string("{src}");
  17.  
  18. lr_output_message("替换前的字符串=%s",lr_eval_string("{src}"));
  19.  
  20. lr_output_message("替换后的字符串=%s",lr_strreplace(dest,str,old,new,strlen(str)));
  21.  
  22. return 0;
  23. }

补充:

  1. int main()
  2. {
  3. char *str="http://192.168.1.1:58763/result.xml";
  4. char *old="192.168.1.1";
  5. char *new="127.0.0.1";
  6.  
  7. char *dest;
  8. //分配内存空间: 大小 == src的长度 + newstr和oldstr长度差(可能是正负或0)+1
  9. printf("%s\n",strreplace(dest, str, old, new,1));
  10. printf("%s\n",strreplace(dest, str, old, new,5));
  11. printf("%s\n",strreplace(dest, str, old, new,9));
  12. printf("%s\n",strreplace(dest, str, old, new,11));
  13.  
  14. printf("%s\n",strreplace(dest, str, old, new,40));
  15.  
  16. if(dest)
  17. {
  18. free(dest);
  19. }
  20. return 0;
  21.  
  22. }

LoadRunner替换字符串(可以同时替换多个)的更多相关文章

  1. js replace替换字符串,同时替换多个方法

    在实际开发中,经常会遇到替换字符串的情况,但是大多数情况都是用replace替换一种字符串,本文介绍了如何使用replace替换多种指定的字符串,同时支持可拓展增加字符串关键字. let conten ...

  2. html(jQuery)替换字符串(全部替换)

    var  str= "a<br/>b<br/>c<br/>"; var Newstr = str.replace("<br/&g ...

  3. sql语句格式化数字(前面补0)、替换字符串

    以下是详细分析: 1.select power(10,3)得到1000(即:10的3次方) 2.select cast(1000+33 as varchar) 将1000转换类型(即:将int转化成v ...

  4. Linux中使用sed命令替换字符串小结

    sed替换的基本语法为: sed 's/原字符串/替换字符串/' 单引号里面,s表示替换,三根斜线中间是替换的样式,特殊字符需要使用反斜线”\”进行转义,但是单引号”‘”是没有办法用反斜线”\”转义的 ...

  5. linux替换字符串的几种方法

    1. 基本替换:s/str1/str2/ 替换当前行第一个str1为str2:s/str1/str2/g 替换当前行所有str1为str2:n,$s/str1/str2/ 替换第 n 行开始到最后一行 ...

  6. 在LoadRunner中查找和替换字符串

    参考<Search & Replace function for LoadRunner>: http://ptfrontline.wordpress.com/2009/03/13/ ...

  7. loadrunner中自定义查找并替换函数

    globas.h中定义 //LoadRunner中没有直接的函数支持查找并替换字符串,因此可以封装一个lr_replace函数出来: // ------------------------------ ...

  8. [No0000A4]DOS命令(cmd)批处理:替换字符串、截取字符串、扩充字符串、获取字符串长度

    1.替换字符串,即将某一字符串中的特定字符或字符串替换为给定的字符串.举例说明其功能:========================================= @echo off set a ...

  9. 在Vi里面实现字符串的批量替换

    在Vi里面实现字符串的批量替换. a. 文件内全部替换: %s#abc#def#g(用def替换文件中所有的abc) 例如把一个文本文件里面的"linuxidc.com"全部替换成 ...

随机推荐

  1. 9.SpringMVC和json结合传递数据 && 10.SpringMVC获取controller中json的数据

  2. webpack学习笔记一

    主要参考: https://blog.madewithlove.be/post/webpack-your-bags/ 起因: 作为运维狗, 对前端一窍不通但心向往之, 最近做一个Dashboard, ...

  3. Filezilla无法确定拖放操作目标,由于shell未正确安装__解决办法

    开始--运行--输入regsvr32空格   然后将filezila安装目录下的fzshellext.dll拖拽到[regsvr32空格]之后 注:64位电脑注意拖拽的文件为fzshellext_64 ...

  4. 【leetcode】Edit Distance (hard)

    Given two words word1 and word2, find the minimum number of steps required to convert word1 to word2 ...

  5. windows server 2008 配置安装AD 域控制器

    工作需要,搞起AD域来,具体配置如下: 配置环境 Windows版本:Windows Server 2008 R2 Enterprise Service Pack 1 系统类型: 64 位操作系统 配 ...

  6. jquery[siblings]取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合

    取得一个包含匹配的元素集合中每一个元素的所有唯一同辈元素的元素集合,用于筛选同辈元素的表达式 $("#pageList").click(function(){ $(this).pa ...

  7. Java Collection、Map集合总结

    1.Java中的Collection集合总结 Collection |---List(存储有序,可重复) |---ArrayList 底层数据结构是数组,查询快,增删慢. 线程不安全.效率高 |--- ...

  8. WIN7 64位系统下,右下角的声音和电源图标不见的解决办法

    近日,电脑突然出现任务栏右下角的声音和电源图标消失不见的问题,重启仍旧没有修复,后来找到了解决办法 解决办法: 1.Ctrl+Shift+Esc键调出windows资源管理器. 2.找到进程中的exp ...

  9. CUDA中Bank conflict冲突

    转自:http://blog.csdn.net/smsmn/article/details/6336060 其实这两天一直不知道什么叫bank conflict冲突,这两天因为要看那个矩阵转置优化的问 ...

  10. 晨跑(bzoj 1877)

    Description Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑.仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑. 现在给出一张学校附近的地图,这张地图中包含N个十 ...