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

目录
  • 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;
}

结果如下:

用法二: 用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";
	 str=str.replace(str.begin(),str.begin()+5,"#"); //用#替换从begin位置开始的5个字符
	 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()函数基本用法的文章就介绍到这了,更多相关C++ replace() 函数用法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++中replace()函数使用方法汇总

    C++编程语言中的string应用方式多样化,每一种应用方式都能帮助我们提实现特定的功能需求.在这里我们将会为大家详细介绍一下其中一个比较重要的用法,有关C++ replace()函数的应用方式. basic_string::max_size C++ replace()函数返回string 能放的最大元素个数.(不同于capacity) size _ type max _ size( ) const; basic_string <char>::size_type cap, max; cap =

  • 浅谈C++中replace()方法

    本文主要针对c++中常用replace函数用法给出九个样例程序: 用法一: /* *用str替换指定字符串从起始位置pos开始长度为len的字符 *string& replace (size_t pos, size_t len, const string& str); */ int main() { string line = "this@ is@ a test string!"; line = line.replace(line.find("@")

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

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

  • php中substr()函数参数说明及用法实例

    本文实例讲述了php中substr()函数参数说明及用法.分享给大家供大家参考.具体如下: string substr(string $string ,int $start [, int $length ]),它可以用于在一个较长的字符串中查找匹配的字符串或字符,$string为所要处理的字符串,$start为开始选取的位置,$length为要选取的长度. $length 为正数据从左向右读取字符. $length 为负数时就右向左读取字符. string 必需,规定要返回其中一部分的字符串.

  • PHP中substr函数字符串截取用法分析

    本文实例讲述了PHP中substr函数字符串截取用法.分享给大家供大家参考,具体如下: PHP中substr函数定义如下: substr(string,start,length) 参数说明如下: string 必需.规定要返回其中一部分的字符串. start  必需.规定在字符串的何处开始. 正数 - 在字符串的指定位置开始 负数 - 在从字符串结尾开始的指定位置开始 0 - 在字符串中的第一个字符处开始 length 可选.规定被返回字符串的长度.默认是直到字符串的结尾. 正数 - 从 sta

  • python中enumerate函数遍历元素用法分析

    本文实例讲述了python中enumerate函数遍历元素用法.分享给大家供大家参考,具体如下: enumerate函数用于遍历序列中的元素以及它们的下标 示例代码如下: i = 0 seq = ['one', 'two', 'three'] for element in seq: print i, seq[i] i += 1 #0 one #1 two #2 three print '============' seq = ['one', 'two', 'three'] for i, elem

  • jquery中map函数遍历数组用法实例

    本文实例讲述了jquery中map函数遍历数组用法.分享给大家供大家参考.具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <

  • C++中回调函数(CallBack)的用法分析

    本文实例分析了C++中回调函数(CallBack)的用法.分享给大家供大家参考.具体分析如下: 如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过. 其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即"this"指针,C++通过传递this指针给其成员函数从而实现程序函数可以访问C++的数据成员.这也可以理解为什么C++类的多个实例可以共享成员函数却-有不同的数据成员.由于this指针的作用,使得将一个CALL-BACK型的成员函数作为回调函数安装时

  • 基于Python中求和函数sum的用法详解

    基于Python中求和函数sum的用法详解 今天在看<集体编程智慧>这本书的时候,看到一段Python代码,当时是百思不得其解,总觉得是书中排版出错了,后来去了解了一下sum的用法,看了一些Python大神写的代码后才发现是自己浅薄了!特在此记录一下.书中代码段摘录如下: from math import sqrt def sim_distance(prefs, person1, person2): # 得到shared_items的列表 si = {} for item in prefs[p

  • python3中numpy函数tile的用法详解

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题:(至于为什么是在numpy.lib.shape_base中,我还是不太清楚.) 其实tile就是重复的意思,把一个数组a,当做模板,重复几次,生成另一个数组b 至于矩阵可以不以这样,还没有试过. 例子: 创建一个a,使用tile来创建b from numpy import * a=[0,1,2]

  • Keras中 ImageDataGenerator函数的参数用法

    一.Keras ImageDataGenerator参数 from keras.preprocessing.image import ImageDataGenerator keras.preprocessing.image.ImageDataGenerator(featurewise_center=False, samplewise_center=False, featurewise_std_normalization = False, samplewise_std_normalization

随机推荐