c/c++语言开发共享C++中replace() 函数的基本用法

目录replace算法:用法一:用str替换指定字符串从起始位置pos开始长度为len的字符用法二: 用str替换 迭代器起始位置 和 结束位置 的字符用法三: 用substr的指定子串(给定起始位置

目录
  • replace算法:
  • 用法一:用str替换指定字符串从起始位置pos开始长度为len的字符
  • 用法二: 用str替换 迭代器起始位置 和 结束位置 的字符
  • 用法三: 用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串 
  • 用法四:string转char*时编译器可能会报出警告,不建议这样做
  • 用法五:string转char*时编译器可能会报出警告,不建议这样做
  • 用法六:string转char*时编译器可能会报出警告,不建议这样做
  • 用法七:string转char*时编译器可能会报出警告,不建议这样做
  • 用法八: 用重复n次的c字符替换从指定位置pos长度为len的内容
  • 用法九: 用重复n次的c字符替换从指定迭代器位置(从i1开始到结束)的内容 
  • 总结

replace算法:

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

泛型算法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;  }

结果如下:

C++中replace() 函数的基本用法

用法二: 用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;   }

结果如下:

C++中replace() 函数的基本用法

用法三: 用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";  	 str=str.replace(str.begin(),str.begin()+5,"#"); //用#替换从begin位置开始的5个字符  	 cout<<str<<endl;  	 return 0;   }

结果如下:

C++中replace() 函数的基本用法

用法四: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;   }

结果如下:

C++中replace() 函数的基本用法

用法五: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;   }

结果如下:

C++中replace() 函数的基本用法

用法六: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;   }

结果如下:

C++中replace() 函数的基本用法

用法七: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;   }

结果如下:

C++中replace() 函数的基本用法

用法八: 用重复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;   }

结果如下:

C++中replace() 函数的基本用法

用法九: 用重复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() 函数的基本用法

总结

到此这篇关于c++中replace()函数基本用法的文章就介绍到这了,更多相关c++ replace() 函数用法内容请搜索<计算机技术网(www.ctvol.com)!!>以前的文章或继续浏览下面的相关文章希望大家以后多多支持<计算机技术网(www.ctvol.com)!!>!

需要了解更多c/c++开发分享C++中replace() 函数的基本用法,都可以关注C/C++技术分享栏目—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/965336.html

(0)
上一篇 2021年12月2日
下一篇 2021年12月2日

精彩推荐