C++ STL replace()函数常用用法详解

原创 2015年07月09日 20:49:22

replace算法:

                replace函数包含于头文件#include<string>中。

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

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

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

 

 

下面介绍replace()函数常用的九中方法:

 

用法一:

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

            

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	line=line.replace(line.find("&"),1,"1");//将line中的第一个&替换成1 
	cout<<line<<endl;
	return 0;

 

 

用法二:

           用str替换 迭代器起始位置 到 结束位置 的字符 

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	line=line.replace(line.begin(),line.begin()+6,"1");//将line从begin位置开始的6个字符替换成1 
	cout<<line<<endl;
	return 0;
}


 

用法三:

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

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	string substr="012345";
	line=line.replace(0,5,substr,substr.find("1"),3);//将line字符串0到5位置上的字符替换为substr的指定子串(从'1'位置开始的3个字符) 
	cout<<line<<endl;
	return 0;
}


 

 

用法四:

           用str替换大串指定位置上的子串(string转char*时编译器可能会报出警告,不建议这样做 )

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	char* str="012345";
	line=line.replace(0,5,str);//用str替换从指定位置0开始长度为5的字符串 
	cout<<line<<endl;
	return 0;
}

 

 

用法五:

           用str替换从指定迭代器位置的字符串 (string转char*时编译器可能会报出警告,不建议这样做 )

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	char* str="012345";
	line=line.replace(line.begin(),line.begin()+9,str);
	cout<<line<<endl;
	return 0;
}


 

 

用法六:

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

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	char* str="012345";
	line=line.replace(0,9,str,5);//用str的前5个字符替换从0位置开始长度为9的字符串 
	cout<<line<<endl;
	return 0;
}

 

用法七:

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

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	char* str="012345";
	line=line.replace(line.begin(),line.begin()+9,str,5);//用str的前5个字符替换指定迭代器位置的字符串  
	cout<<line<<endl;
	return 0;
}


 

 

用法八:

           用重复n次的c字符替换从指定位置pos长度为len的内容 

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	char c='1';
	line=line.replace(0,9,3,c);//用重复3次的c字符替换从指定位置0长度为9的内容 
	cout<<line<<endl;
	return 0;
}


 

 

用法九:

           用重复n次的c字符替换从指定迭代器位置(从i1开始到结束)的内容 

 

示例代码:

#include<iostream>
#include<string>
using namespace std;
int main()
{
	string line="qwer& &qwer&& &&";
	char c='1';
	line=line.replace(line.begin(),line.begin()+9,3,c);//用重复3次的c字符替换从指定迭代器中的内容 
	cout<<line<<endl;
	return 0;
}


 

 

注:

      有使用迭代器类型的参数不限于string类型,可以为vector、list等其他类型迭代器。

 

 

 

 

 

 

          

 

 

 

版权声明:本文为博主原创文章,未经博主允许不得转载。如有错误,欢迎指出~(@^_^@)~

相关文章推荐

std::string实现全部替换功能

想把"/n"换成"//n"怎么办?因为std::string并未实现替换所有子串功能,故封装一个函数void StringReplace(string &strBase, string strSrc,...

std::string详解

链接:http://blog.csdn.net/debugconsole/article/details/8677313 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为...

C++实现string.replace(字符串替换)

#include "stdafx.h" #include #include using namespace std;void string_replace( std::string &strBig...

std::string用法总结

在平常工作中经常用到了string类,本人记忆了不好用到了的时候经常要去查询。在网上摘抄一下总结一下,为以后的查询方便: string类的构造函数: string(const char *s); ...

c++中string 的replace用法

/*用法一: *用str替换指定字符串从起始位置pos开始长度为len的字符 *string& replace (size_t pos, size_t len, const s...

C++ replace() 函数用法详解

本文主要针对c++中常用replace函数用法给出样例程序 [cpp] view plain copy /*用法一:   *用str替换指定字符串...

C++ replace() 函数用法详解

本文主要针对c++中常用replace函数用法给出样例程序 /*用法一: *用str替换指定字符串从起始位置pos开始长度为len的字符 *string& replace (size_t p...
  • glp_hit
  • glp_hit
  • 2013年04月17日 19:30
  • 55762

C++ string的用法和例子

string是C++标准库的一个重要的部分,主要用于字符串处理。可以使用输入输出流方式直接进行操作,也可以通过文件等手段进行操作。同时C++的算法库对string也有着很好的支持,而且string还和...

针对 std::string 的 trim 和 replace 方法

std::string不支持trim方法,同时原生的replace方法在使用上和其它语言也有些许差别,这里提供了两个替代方法,个人感觉更加好用。...
  • rrrfff
  • rrrfff
  • 2012年02月02日 15:40
  • 50113

STL_算法_替换(replace、replace_copy、replace_if、replace_copy_if)

C++ Primer 学习中。。。   简单记录下我的学习过程 (代码为主) 所有容器适用 replace(b,e,ov,nv)      //把oldvalue替换成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ STL replace()函数常用用法详解
举报原因:
原因补充:

(最多只允许输入30个字)