c++ string replace

转载 2015年11月18日 13:49:43

C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。

首先明白一个概念,即string替换所有字符串,将"12212"这个字符串的所有"12"都替换成"21",结果是什么?

可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码如下:


#include   <</span>string>   
#include   <</span>iostream>   
using   namespace   std;   
string&   replace_all(string&   str,const   string&   old_value,const   string&   new_value)   
{   
    while(true)   {   
        string::size_type   pos(0);   
        if(   (pos=str.find(old_value))!=string::npos   )   
            str.replace(pos,old_value.length(),new_value);   
        else   break;   
    }   
    return   str;   
}   
string&   replace_all_distinct(string&   str,const   string&   old_value,const   string&   new_value)   
{   
    for(string::size_type   pos(0);   pos!=string::npos;   pos+=new_value.length())   {   
        if(   (pos=str.find(old_value,pos))!=string::npos   )   
            str.replace(pos,old_value.length(),new_value);   
        else   break;   
    }   
    return   str;   
}   
int   main()   
{   
    cout   <<   replace_all(string("12212"),"12","21")   <<   endl;   
    cout   <<   replace_all_distinct(string("12212"),"12","21")   <<   endl;   
}   

相关文章推荐

c++ string::replace用法

本文主要针对c++中常用replace函数用法给出样例程序 [cpp] view plaincopy /*用法一:   *用str替换指定字符串从...

c++: string 的函数replace()用法

basic_string::max_size 返回string 能放的最大元素个数。(不同于capacity) size _ type max _ size( ) const; ...

c++ string 的函数replace()用法

basic_string::max_size  返回string 能放的最大元素个数。(不同于capacity)  size _ type max _ size( ) const;  ...

c++ string中的replace

将原string 中的元素或子串替换。返回替换后的string。  (1)用string 或C-string 代替操作string 中从 _Pos1 开始的 _Num1 个字符  basi...
  • educast
  • educast
  • 2012年08月01日 16:03
  • 784

c++中string 的replace用法

[cpp] view plain copy print? /*用法一:   *用str替换指定字符串从起始位置pos开始长度为len的字符   *string& replace (size...

C++面试题,自己实现String类的构造函数,拷贝构造函数,赋值操作符,append,replace,+运算符重载等

#include "string.h" #include using namespace std; class String { public:  String(const char *...

Java初学习 - 取子串,查找串,去空格常用JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有的方法说明

JAVA中去掉空格 1. String.trim() trim()是去掉首尾空格 2.str.replace(" ", ""); 去掉所有空格,包括首尾、中间 String str = " he...
  • cnmilan
  • cnmilan
  • 2016年04月14日 13:55
  • 1295

java中String字符串的替换函数:replace与replaceAll的区别

java中String字符串的替换函数:replace与replaceAll的区别
  • educast
  • educast
  • 2016年06月05日 15:54
  • 1317

string.replace()替换匹配给定的正则表达式的(一个或多个)子串

在百度前端学习js遇到的问题,总结一下: 概要:string.relace(regexp,replacement)参数 regexp:指定要替换的模式RegExp对象。如果这个参数是一个字符串,他...

Bash String Manipulation Examples – Length, Substring, Find and Replace

In bash shell, when you use a dollar sign followed by a variable name, shell expands the variable wi...
  • macyang
  • macyang
  • 2012年05月10日 15:36
  • 3056
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c++ string replace
举报原因:
原因补充:

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