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,...
  • lishengwei
  • lishengwei
  • 2008年07月15日 16:36
  • 13241

std::string详解

链接:http://blog.csdn.net/debugconsole/article/details/8677313 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为...
  • yang3wei
  • yang3wei
  • 2015年06月03日 09:43
  • 3274

STL std::string 字符全局替换

由于stl string 没有提供字符全局替换功能所以用起来还不是很方便 所以博主今天就把此功能单独写了一个方法提供使用 /* * 函数: * replace(替换字符串) * 参数: ...
  • wu110112
  • wu110112
  • 2017年12月08日 13:25
  • 132

std::string字符串中替换子串的函数

//std::string中替换子字符串的函数#include void string_replace( std::string &strBig, const std::string &strsrc,...
  • baodi_z
  • baodi_z
  • 2008年01月23日 19:50
  • 11657

std::string用法总结

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

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

本文主要针对c++中常用replace函数用法给出样例程序 [cpp] view plain copy /*用法一:   *用str替换指定字符串...
  • jiary5201314
  • jiary5201314
  • 2016年09月11日 10:05
  • 2817

c++中string 的replace用法

/*用法一: *用str替换指定字符串从起始位置pos开始长度为len的字符 *string& replace (size_t pos, size_t len, const s...
  • yinhe888675
  • yinhe888675
  • 2016年03月18日 10:07
  • 10194

C++中string使用

所有解释已经在程序中标明,不再单独解释 代码: //如何使用C++标准库类型中的string #include #include #include using namespace std; ...
  • CorCplusplusorjava
  • CorCplusplusorjava
  • 2015年09月03日 22:11
  • 1838

c++ 之replace函数用法

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

c++ string类的完整实现!!!

c++ string类的完整实现,标注库有的功能这里基本都有,在此基础上可以进行良好的扩充!!!...
  • focusing_on_cpp
  • focusing_on_cpp
  • 2015年06月29日 07:58
  • 5642
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++ STL replace()函数常用用法详解
举报原因:
原因补充:

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