replace算法:
replace函数包含于头文件#include中。

           泛型算法replace把队列中与给定值相等的所有值替换为另一个值,整个队列都被扫描,即此算法的各个版本都在

线性时间内执行———其复杂度为O(n)。

即replace的执行要遍历由区间[frist,last)限定的整个队列,以把old_value替换成new_value。

下面说下replace()的九种用法:(编译软件dev5.4.0)

**

用法一:用str替换指定字符串从起始位置pos开始长度为len的字符

**
string& replace (size_t pos, size_t len, const string& str);
代码如下:


#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";str=str.replace(str.find("a"),2,"#");  //从第一个a位置开始的两个字符替换成#cout<<str<<endl; return 0;
}

结果如下:
在这里插入图片描述

用法二: 用str替换 迭代器起始位置 和 结束位置 的字符

string& replace (const_iterator i1, const_iterator i2, const string& str);
如下:

#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";str=str.replace(str.begin(),str.begin()+5,"#"); //用#替换从begin位置开始的5个字符cout<<str<<endl;return 0;
}
结果

用法三: 用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串

 **string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);**
#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";string substr = "12345";str=str.replace(0,5,substr,substr.find("1"),4); //用substr的指定字符串替换str指定字符串cout << str << endl;return 0;
}

结果如下:

用法四:string转char*时编译器可能会报出警告,不建议这样做 用str替换从指定位置0开始长度为5的字符串

string& replace(size_t pos, size_t len, const char s);*
代码如下:


#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";char * str1 = "12345";str=str.replace(0,5,str1);   //用str替换从指定位置开始长度为5的字符串cout<<str<<endl;return 0;
}

结果如下:

用法五:string转char*时编译器可能会报出警告,不建议这样做

          ******用str替换从指定迭代器位置的字符串 string& replace (const_iterator i1, const_iterator i2, const char* s);******

代码如下:


#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";char * str1 = "12345";str=str.replace(str.begin(),str.begin()+6,str1);   //用str替换从指定迭代器位置的字符串cout<<str<<endl;return 0;
}

结果如下:

用法六:string转char时编译器可能会报出警告,不建议这样做 用s的前n个字符替换从开始位置pos长度为len的字符串 string& replace(size_t pos, size_t len, const char s, size_t n);

代码如下:


#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";char * str1 = "12345";str=str.replace(0,6,str1,4);   //用str1的前4个字符串替换从位置0~6的字符串cout<<str<<endl;return 0;
}

结果如下:

用法七:string转char时编译器可能会报出警告,不建议这样做 用s的前n个字符替换指定迭代器位置(从i1到i2)的字符串 string& replace (const_iterator i1, const_iterator i2, const char s, size_t n);

代码如下:

#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";char * str1 = "12345";str = str.replace(str.begin(),str.begin()+6,str1,4);   //用str1的前4个字符串替换从位置0~6的字符串cout<<str<<endl;return 0;
}

结果如下:

用法八: 用重复n次的c字符替换从指定位置pos长度为len的内容 string& replace (size_t pos, size_t len, size_t n, char c);

代码如下:


#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";char  str1 = '#';str = str.replace(0,6,3,str1);   //用重复3次的str1字符替换的替换从位置0~6的字符串cout<<str<<endl;return 0;
}

结果如下:

用法九: 用重复n次的c字符替换从指定迭代器位置(从i1开始到结束)的内容 string& replace (const_iterator i1, const_iterator i2, size_t n, char c);

代码如下:

#include<iostream>
#include<string>
using namespace std;
int main()
{string str = "he is@ a@ good boy";char  str1 = '#';str = str.replace(str.begin(),str.begin()+6,3,str1);   //用重复3次的str1字符替换的替换从指定迭代器位置的内容 cout<<str<<endl;return 0;
}

结果如下:

C++ replace用法相关推荐

  1. boost::hana::replace用法的测试程序

    boost::hana::replace用法的测试程序 实现功能 C++实现代码 实现功能 boost::hana::replace用法的测试程序 C++实现代码 #include <boost ...

  2. boost::fusion::replace用法的测试程序

    boost::fusion::replace用法的测试程序 实现功能 C++实现代码 实现功能 boost::fusion::replace用法的测试程序 C++实现代码 #include <b ...

  3. java中的replace用法_java中replace用法举例:replace(char oldChar, char newChar)返回一个新的字符串...

    1.JAVA中,char占2字节,16位.可在寄存汉字 2.java中replace用法举例:replace(char oldChar, char newChar)返回一个新的字符串,它是经过用 ne ...

  4. replace 用法

    orcl中replace()用法: replace:(字符串 | 列):进行替换: 将bqh1表中name列带"小"的字改成"大": select * from ...

  5. c++中string 的replace用法

    转载于这位博主:链接1 链接2 c++ string string 的replace用法 string替换指定字符串内的所有字段 string 的replace用法 /*用法一: *用str替换指定字 ...

  6. Js中String对象方法replace()用法详解

    replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement) ...

  7. mysql的replace用法

    replace into 跟 insert 区别: 1. 如果发现表中已经有此行数据(根据主键或者唯一索引判断)则先删除此行数据,然后插入新的数据. 2. 否则,直接插入新数据. 要注意的是:插入数据 ...

  8. mysql replace用法

    mysql的replace函数是一个非常方便的替换函数,以下是官方文档的说法: 我们来看看示例比较 在mysql当中 replace除了替换之后,还有replace into的用法,类似于insert ...

  9. Android开发之fragment之replace用法

    我们先来写个接口: package com.xiayiye.yhsh.fragmentreplace;import android.os.Bundle;/*** @author :下一页5(轻飞扬)* ...

最新文章

  1. 折线图表动画(历史进程效果)
  2. 18.2 keepalived介绍
  3. Windows上也能用Swift编程了,官方编译工具安装包现已上线
  4. 设计模式学习笔记三——Abstract Factory模式
  5. [POJ2420]A Star not a Tree?(模拟退火)
  6. Coil - Google推荐的协程图片加载库
  7. android 官方说明文档,Android官方文档翻译-Accessibility
  8. Java Garbage Collection基础详解------Java 垃圾回收机制技术详解
  9. 监理延期 验收工程款制约三方
  10. jquery图片延迟加载 及 serializeArray、serialize用法记录
  11. php加skplayer,WordPress整合ckplayer(最新)
  12. kubernetes入门之Downward API
  13. pcie gen3 bios设置_唯一还在认真做BIOS的大陆板卡厂商!七彩虹iGame Z490 Vulcan X V20评测...
  14. AHRS简要说明及使用例程(外加踩坑)
  15. 大白菜 装系统 win7
  16. JavaScript函子(随笔)
  17. 关于STM32 程序烧录不进去
  18. 存储技术和灾备解决方案要点
  19. [集合下载]邵式经典不完全收录 141部[59G]
  20. 用EXCEL宏编写坐标转换

热门文章

  1. mybatis-generator-gui使用详解
  2. 【iMessage苹果相册推】 内部网关协议(InternetwayProtocol)常用的是RIP和OSPE
  3. System.Net.Sockets.TcpClient
  4. 核心期刊发表要求详细讲解
  5. 设计模式 | 观察者模式/发布-订阅模式(observer/publish-subscribe)
  6. 【蓝牙学习笔记二】初识BLE蓝牙协议栈
  7. 桑坦德银行使用以太坊区块链赎回2000万美元债券
  8. c语言产生高斯白噪声函数,含有高斯白噪声的正弦组合信号的产生
  9. 学生护眼灯色温多少合适?暖白光4000K护眼台灯分享
  10. “全脑思维下的产品创建”技术讲座火爆结束!