`
7090
  • 浏览: 279476 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

(转)string替换所有指定字符串(C++)

 
阅读更多
C++的string提供了replace方法来实现字符串的替换,但是对于将字符串中某个字符串全部替换这个功能,string并没有实现,我们今天来做的就是这件事。
首先明白一个概念,即string替换所有字符串,将"12212"这个字符串的所有"12"都替换成"21",结果是什么?
可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了实现,代码如下:
#include   <string>   
#include   <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;   
}  

/*
输出如下:  
22211  
21221
*/
OK,这样的话,任务就完成啦。

原文:http://www.vimer.cn
分享到:
评论

相关推荐

    C++中string替换所有指定字符串的方法

    C++中string提供了replace方法来实现字符串的替换,但是这个方法只能替换字符串中第一个匹配的子串。如果想要将字符串中所有指定的字符串替换,需要使用循环来实现。 知识点2:使用循环实现字符串的替换 可以使用...

    C++ 中String 替换指定字符串的实例详解

    首先明白一个概念,即string替换所有字符串,将”12212″这个字符串的所有”12″都替换成”21″,结果是什么? 可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了...

    C++ STL string类 字符串处理函数 第二版

    7. **查找和替换**:`find(const string&, size_t pos=0)`和`find_first_of(const string&, size_t pos=0)`查找子字符串,`replace(size_t pos, size_t n, const string&)`替换子字符串。 8. **插入和删除**:`...

    纯C++ 字符串处理函数大全源码

    在处理字符串时,虽然C++标准库(STL)提供了许多内置的工具,如`std::string`类,但有时我们需要更加定制化的功能。这个"纯C++ 字符串处理函数大全源码"正是为了满足这种需求而设计的,它包含了作者自定义封装的一...

    C++字符串函数_C++_

    首先,C++标准库中有一个名为`&lt;string&gt;`的头文件,它包含了`std::string`类,这是C++中处理字符串的主要方式。`std::string`是一个动态大小的字符数组,可以自动增长或缩小以适应存储的字符数量。它支持许多内置的...

    比CString更高效的字符串替换

    `CString`的`Replace`方法通过遍历整个字符串来查找并替换指定的子串。对于大型字符串,这种方法可能会非常慢,因为每次替换都需要重新分配内存并拷贝剩余的字符。此外,如果替换操作导致字符串长度显著变化,这种...

    C++ string替换指定字符实例代码

    C++ string替换指定字符实例代码 C++ string类提供了多种方法来操作字符串,其中replace方法可以实现字符串的替换,但是有时候我们想要实现类似JAVA中的替换功能,将string中的某个字符a全部替换成新的字符b,这个...

    文件字符串替换工具

    3. 替换字符串:遍历每行字符串,利用`find`和`replace`函数查找并替换目标字符串。 4. 写回文件:创建一个新的`std::ofstream`对象,打开原文件(覆盖模式),将处理后的字符串写回。 5. 关闭文件:确保在操作完成...

    Visual C++ 字符串

    5. **替换子串**:`replace()`函数可以替换字符串的一部分。 ```cpp str.replace(index, 5, "Universe"); // 将找到的"World"替换为"Universe" ``` 6. **插入与删除**:`insert()`函数在指定位置插入新内容,`...

    C++ 字符串操作

    C++ 字符串操作是 C++ 编程语言中的一种基本操作,字符串操作是指对字符串的各种操作,包括字符串的创建、修改、比较、连接、提取、搜索、替换等。字符串操作是 C++ 编程语言中最基本和最重要的操作之一。 在 C++ ...

    string中显示特定字符串

    这个任务的核心是了解如何在`string`对象中搜索并提取指定的字符串。以下是一些关于在`string`中显示特定字符串的关键知识点: 1. **字符串搜索**: - `find()`或`index()`方法:在大多数编程语言中,字符串对象都...

    C_plus_String_operation.rar_operation_字符串 c++

    7. **查找与替换**:`find()` 和 `rfind()` 分别用于从左到右和从右到左查找子串,`replace()` 方法可以替换字符串中的子串。 8. **拷贝与切片**:`substr()` 可以创建字符串的一个子串,`copy()` 用于将字符串的一...

    C++字符串处理系统

    - 查找或替换字符串中的字符 #### 2.2 详细设计 ##### 2.2.1 类的定义 首先定义一个名为`strings`的类,其中包含了一个长度为200的字符数组`s1`作为私有成员变量,以及多个公共成员函数用于实现不同的字符串处理...

    字符串查找替换

    除了基本的查找和替换,高级的字符串处理还包括不区分大小写的查找、全局替换(替换所有匹配项,而非仅第一个)以及使用正则表达式的复杂匹配。正则表达式是一种强大的模式匹配工具,能够处理复杂的查找和替换需求,...

    C++字符串处理大集合

    C++字符串处理大集合 在 C++ 中,字符串处理是非常重要的一部分,对于初学者来说,掌握字符串处理函数是非常必要的。...也可以使用 `string` 构造函数将 C 语言字符串转换为 C++ 字符串,例如 `string str2(cstr)`。

    《C++String深入详解2.0版》PDF

    `replace` 函数用于替换字符串中的一部分内容。 **1.2.28 reserve** `reserve` 函数允许预分配足够的内存空间以容纳指定数量的字符,以避免频繁的内存重新分配。 **1.2.29 resize** `resize` 函数用于更改字符串...

Global site tag (gtag.js) - Google Analytics