浅谈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("@"), 1, ""); //从第一个@位置替换第一个@为空
 cout << line << endl;
 return 0;
}

运行结果:

用法二:

/*
 *用str替换 迭代器起始位置 和 结束位置 的字符
 *string& replace (const_iterator i1, const_iterator i2, const string& str);
 */
int main()
{
 string line = "this@ is@ a test string!";
 line = line.replace(line.begin(), line.begin()+6, ""); //用str替换从begin位置开始的6个字符
 cout << line << endl;
 return 0;
}

运行结果:

用法三: 

/*
 *用substr的指定子串(给定起始位置和长度)替换从指定位置上的字符串
 *string& replace (size_t pos, size_t len, const string& str, size_t subpos, size_t sublen);
 */
int main()
{
 string line = "this@ is@ a test string!";
 string substr = "12345";
 line = line.replace(0, 5, substr, substr.find("1"), 3); //用substr的指定子串(从1位置数共3个字符)替换从0到5位置上的line
 cout << line << endl;
 return 0;
}

运行结果:

用法四:string转char*时编译器可能会报出警告,不建议这样做

/*
 *用str替换从指定位置0开始长度为5的字符串
 *string& replace(size_t pos, size_t len, const char* s);
 */
int main()
{
 string line = "this@ is@ a test string!";
 char* str = "12345";
 line = line.replace(0, 5, str); //用str替换从指定位置0开始长度为5的字符串
 cout << line << endl;
 return 0;
}

运行结果:

用法五:string转char*时编译器可能会报出警告,不建议这样做

/*
 *用str替换从指定迭代器位置的字符串
 *string& replace (const_iterator i1, const_iterator i2, const char* s);
 */
int main()
{
 string line = "this@ is@ a test string!";
 char* str = "12345";
 line = line.replace(line.begin(), line.begin()+9, str); //用str替换从指定迭代器位置的字符串
 cout << line << endl;
 return 0;
}

运行结果:

用法六:string转char*时编译器可能会报出警告,不建议这样做

/*
 *用s的前n个字符替换从开始位置pos长度为len的字符串
 *string& replace(size_t pos, size_t len, const char* s, size_t n);
 */
int main()
{
 string line = "this@ is@ a test string!";
 char* str = "12345";
 line = line.replace(0, 9, str, 4); //用str的前4个字符替换从0位置开始长度为9的字符串
 cout << line << endl;
 return 0;
}

运行结果:

用法七:string转char*时编译器可能会报出警告,不建议这样做

/*
 *用s的前n个字符替换指定迭代器位置(从i1到i2)的字符串
 *string& replace (const_iterator i1, const_iterator i2, const char* s, size_t n);
 */
int main()
{
 string line = "this@ is@ a test string!";
 char* str = "12345";
 line = line.replace(line.begin(), line.begin()+9, str, 4); //用str的前4个字符替换指定迭代器位置的字符串
 cout << line << endl;
 return 0;
}

运行结果:

用法八:

/* 

*用重复n次的c字符替换从指定位置pos长度为len的内容
 *string& replace (size_t pos, size_t len, size_t n, char c);
 */
int main()
{
 string line = "this@ is@ a test string!";
 char c = '1';
 line = line.replace(0, 9, 3, c); //用重复3次的c字符替换从指定位置0长度为9的内容
 cout << line << endl;
 return 0;
}

运行结果:

用法九: 

/*
 *用重复n次的c字符替换从指定迭代器位置(从i1开始到结束)的内容
 *string& replace (const_iterator i1, const_iterator i2, size_t n, char c);
 */
int main()
{
 string line = "this@ is@ a test string!";
 char c = '1';
 line = line.replace(line.begin(), line.begin()+9, 3, c); //用重复3次的c字符替换从指定迭代器位置的内容
 cout << line << endl;
 return 0;
}

运行结果:

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

(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 =

  • JS使用replace()方法和正则表达式进行字符串的搜索与替换实例

    1.JS字符串的替换及replace()方法的使用 replace(regexp,replacement)方法有两个参数,第一参数可以是一个纯文本字符串或是一个RegExp对象,具体请看RegExp对象的使用:第二个参数可是一个字符串也可以是一个函数. 以下是JS字符串替换的举例: 例1: 复制代码 代码如下: var str="Hello world!";document.write(str.replace(/world/, "phper")); 例2: 复制代码

  • js正则查找match()与替换replace()用法实例

    本文实例讲述了js中正则的查找match()与替换replace()的用法.分享给大家供大家参考.具体如下: 复制代码 代码如下: <html> <head> <script type="text/javascript"> //string.match(正则):正则查找字符串,返回符合正则的字符或字符串 function t1(){  var con = document.getElementsByName('content')[0].value;/

  • js中字符替换函数String.replace()使用技巧

    定义和用法 replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串. 语法 stringObject.replace(regexp/substr,replacement)参数 描述 regexp/substr 必需.规定子字符串或要替换的模式的 RegExp 对象. 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象.   replacement 必需.一个字符串值.规定了替换文本或生成替换文本的函数.

  • php正则之函数 preg_replace()参数说明

    preg_replace 字符串比对解析并取代.  语法: mixed preg_replace(mixed pattern, mixed replacement, mixed subject);  返回值: 混合类型资料  函数种类: 资料处理  内容说明  本函数以 pattern 的规则来解析比对字符串 subject,欲取而代之的字符串为参数 replacement.返回值为混合类型资料,为取代后的字符串结果.  使用范例  下例返回值为 $startDate = 6/19/1969 复

  • 浅谈jQuery中replace()方法

    今天在读jquery源码时,发现一个以前自己不曾注意过得问题,就是replece()的第二个参数为函数时的问题,以前只是知道replace()的第二个参数可以为函数,但是不知道该怎么操作,今天看到源码里用到了函数作为replace()的第二个参数时,感觉自己读起来比较吃力,于是准备整理下这个函数... 语法 stringObject.replace( regexp/substr, replacement) 返回值 返回一个新的字符串,是用replacement替换了regexp的第一次匹配或所欲

  • eregi_replace()中特殊字符的处理方法

    我对PHP的正则表达式不太熟悉      在使用eregi_replace()函数时发现带有()的字符串不能进行替换,看了手册还是糊里糊涂      比如      将   DIN   1693(Pt.2)-1997   加粗      使用        $str='din   1693(Pt.2)-1997'      eregi_replace($str,"<strong>".$str."</strong>",$str);      最

  • PHP preg_replace() 正则替换所有符合条件的字符串

    需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_match.替换preg_replace. 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少. 根据前面说的,两种场景:统计分析,用匹配:处理用替换. PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹

  • javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同

    1.<script language="javascript"> var str = "ajfhslajd and"; //在此我想将字母a替换成字母A alert(str.replace("a","A")); </script> 结果:是只有替换了字符串的首字符a 这不是我要的结果 看↓ 2.replace()支持正则表达式,它可以按照正则表达式的规则匹配字符或字符串,然后给予替换! <scri

  • javascript replace()用法详解附实例代码

    replace()最简单的算是能力就是简单的字符替换.示例代码如下: var strM = "javascript is a good script language"; //在此我想将字母a替换成字母A alert(strM.replace("a","A")); [Ctrl+A 全选 注:如需引入外部Js需刷新才能执行] 我想大家运行后可以看到结果,它只替换了首字母.但如果加上正则表达式结果就不一样了!呵呵,没错.replace()支持正则表达

  • 关于JS字符串函数String.replace()

    替换匹配给定正则表达式的(一个或多个)子串 string.replace(regexp, replacement) 参数: regexp: RegExp对象或者字符串 replacement: 替换文本的字符串,或者一个函数,用于在调用时生成对应的替换文本. 返回: 返回一个替换好的新字符串 描述: replacement可以是字符串或一个函数.如果是一个函数,它将在每个匹配结果上调用,它返回的字符串将作为替换文本. 传入该函数的参数: 1) 匹配该模式的字符串 2) 匹配该模式中某个圆括号子表

  • 从jQuery.camelCase()学习string.replace() 函数学习

    功能 camelCase函数的功能就是将形如background-color转化为驼峰表示法:backgroundColor. 此函数在jQuery的data函数,以及涉及到css的诸多函数中都有用到. jQuery的实现 复制代码 代码如下: //正则匹配 rdashAlpha = /-([a-z])/ig, // camelCase替换字符串时的回调函数 fcamelCase = function( all, letter ) { return letter.toUpperCase(); }

  • js replace() 文本替换你所不知的

    复制代码 代码如下: //把word-word转化为wordWord function camelize(s){ return s.replace(/-(\w)/g, function(strMatch, p1){ return p1.toUpperCas(); }); } 这里应用到了文本替换函数replace,他的一般语法估计大家都已经耳熟能详了,现在介绍一下当他的第二个参数为函数时的情形. 今天我在群里发这个函数的时候,有个人反映很快,说上面的那个正则写错了"/-(\w)/g",

随机推荐