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

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等其他类型迭代器。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-07 17:01:43

C++ STL replace()函数常用用法详解的相关文章

STL list链表的用法详解(转)

本文以List容器为例子,介绍了STL的基本内容,从容器到迭代器,再到普通函数,而且例子丰富,通俗易懂.不失为STL的入门文章,新手不容错过! 0 前言 1 定义一个list 2 使用list的成员函数push_back和push_front插入一个元素到list中 3 list的成员函数empty() 4 用for循环来处理list中的元素 5 用STL的通用算法for_each来处理list中的元素 6 用STL的通用算法count_if()来统计list中的元素个数 7 使用count_i

setAttribute()函数的用法详解

setAttribute()函数的用法详解:在动态创建元素设置元素的属性的时候setAttribute()函数用处很大,它可以动态的设置元素的属性,下面介绍一下它的用法.语法结构: setAttribute(name, value) 1).name表示要设置的属性.2).value表示属性值.代码实例如下: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta nam

recv函数的用法详解

recv函数 int recv( SOCKET s,     char FAR *buf,      int len,     int flags     ); 不论是客户还是服务器应用程序都用recv函数从TCP连接的另一端接收数据. 该函数的第一个参数指定接收端套接字描述符: 第二个参数指明一个缓冲区,该缓冲区用来存放recv函数接收到的数据: 第三个参数指明buf的长度: 第四个参数一般置0. 这 里只描述同步Socket的recv函数的执行流程.当应用程序调用recv函数时,recv先等

PHP截取字符串函数substr()函数实例用法详解

在PHP中有一项非常重要的技术,就是截取指定字符串中指定长度的字符.PHP对于字符串截取可以使用PHP预定义函数substr()函数来实现.下面就来介绍一下substr()函数的语法及其应用. substr()函数语法格式如下:大理石平台厂家 1 substr(string, start, length); substr()函数参数说明如下: 参 数 说 明 string 指定字符串对象 start 指定开始截取字符串的位置.如果参数start为负数,则从字符串的末尾开始截取 length 可选

STL中的map用法详解

STL中map用法详解 说明:如果你具备一定的C++ template知识,即使你没有接触过STL,这个文章你也应该可能较轻易的看懂.本人水平有限,不当之处,望大家辅正. 一.map概述 map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道.这里说下map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),

STL之一:字符串用法详解

转载于:http://blog.csdn.net/longshengguoji/article/details/8539471 字符串是程序设计中最复杂的变成内容之一.STL string类提供了强大的功能,使得许多繁琐的编程内容用简单的语句就可完成.string字符串类减少了C语言编程中三种最常见且最具破坏性的错误:超越数组边界:通过违背初始化或被赋以错误值的指针来访问数组元素:以及在释放了某一数组原先所分配的存储单元后仍保留了“悬挂”指针. string 函数列表 函数名 描述 begin

C#中FindByValue、FindControl函数的用法详解

一.C#中FindByValue函数的用法:ListItem item = DropDownList1.Items.FindByValue(theme);根据指定的值("theme")获取 DropDownList 中对应的项.二.FindControl的使用方法:Control.FindControl (String):在当前的命名容器中搜索带指定 id 参数的服务器控件.(有点类似javascript中的getElementById(string))简单的例子:<form i

MySQL数据库INSERT、UPDATE、DELETE以及REPLACE语句的用法详解

本篇文章是对MySQL数据库INSERT.UPDATE.DELETE以及REPLACE语句的用法进行了详细的分析介绍,需要的朋友参考下 MySQL数据库insert和update语句引:用于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SELECT语句,另外一种就是更新语句,也叫做数据操作语句.言外之意,就是对数据进行修改.在标准的SQL中有3个语句,它们是INSERT.UPDATE以及DELETE. 用 于操作数据库的SQL一般分为两种,一种是查询语句,也就是我们所说的SEL

Oracle常用函数TO_CHAR用法详解(转自博客园-小小草博文)

The following are number examples for the to_char function. to_char(1210.73, '9999.9') would return '1210.7' to_char(1210.73, '9,999.99') would return '1,210.73' to_char(1210.73, '$9,999.00') would return '$1,210.73' to_char(21, '000099') would retur