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提供了replace方法来实现字符串的替换,但是这个方法只能替换字符串中第一个匹配的子串。如果想要将字符串中所有指定的字符串替换,需要使用循环来实现。 知识点2:使用循环实现字符串的替换 可以使用...
首先明白一个概念,即string替换所有字符串,将”12212″这个字符串的所有”12″都替换成”21″,结果是什么? 可以是22211,也可以是21221,有时候应用的场景不同,就会希望得到不同的结果,所以这两种答案都做了...
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++标准库(STL)提供了许多内置的工具,如`std::string`类,但有时我们需要更加定制化的功能。这个"纯C++ 字符串处理函数大全源码"正是为了满足这种需求而设计的,它包含了作者自定义封装的一...
首先,C++标准库中有一个名为`<string>`的头文件,它包含了`std::string`类,这是C++中处理字符串的主要方式。`std::string`是一个动态大小的字符数组,可以自动增长或缩小以适应存储的字符数量。它支持许多内置的...
`CString`的`Replace`方法通过遍历整个字符串来查找并替换指定的子串。对于大型字符串,这种方法可能会非常慢,因为每次替换都需要重新分配内存并拷贝剩余的字符。此外,如果替换操作导致字符串长度显著变化,这种...
C++ string替换指定字符实例代码 C++ string类提供了多种方法来操作字符串,其中replace方法可以实现字符串的替换,但是有时候我们想要实现类似JAVA中的替换功能,将string中的某个字符a全部替换成新的字符b,这个...
3. 替换字符串:遍历每行字符串,利用`find`和`replace`函数查找并替换目标字符串。 4. 写回文件:创建一个新的`std::ofstream`对象,打开原文件(覆盖模式),将处理后的字符串写回。 5. 关闭文件:确保在操作完成...
5. **替换子串**:`replace()`函数可以替换字符串的一部分。 ```cpp str.replace(index, 5, "Universe"); // 将找到的"World"替换为"Universe" ``` 6. **插入与删除**:`insert()`函数在指定位置插入新内容,`...
C++ 字符串操作是 C++ 编程语言中的一种基本操作,字符串操作是指对字符串的各种操作,包括字符串的创建、修改、比较、连接、提取、搜索、替换等。字符串操作是 C++ 编程语言中最基本和最重要的操作之一。 在 C++ ...
这个任务的核心是了解如何在`string`对象中搜索并提取指定的字符串。以下是一些关于在`string`中显示特定字符串的关键知识点: 1. **字符串搜索**: - `find()`或`index()`方法:在大多数编程语言中,字符串对象都...
7. **查找与替换**:`find()` 和 `rfind()` 分别用于从左到右和从右到左查找子串,`replace()` 方法可以替换字符串中的子串。 8. **拷贝与切片**:`substr()` 可以创建字符串的一个子串,`copy()` 用于将字符串的一...
- 查找或替换字符串中的字符 #### 2.2 详细设计 ##### 2.2.1 类的定义 首先定义一个名为`strings`的类,其中包含了一个长度为200的字符数组`s1`作为私有成员变量,以及多个公共成员函数用于实现不同的字符串处理...
除了基本的查找和替换,高级的字符串处理还包括不区分大小写的查找、全局替换(替换所有匹配项,而非仅第一个)以及使用正则表达式的复杂匹配。正则表达式是一种强大的模式匹配工具,能够处理复杂的查找和替换需求,...
C++字符串处理大集合 在 C++ 中,字符串处理是非常重要的一部分,对于初学者来说,掌握字符串处理函数是非常必要的。...也可以使用 `string` 构造函数将 C 语言字符串转换为 C++ 字符串,例如 `string str2(cstr)`。
`replace` 函数用于替换字符串中的一部分内容。 **1.2.28 reserve** `reserve` 函数允许预分配足够的内存空间以容纳指定数量的字符,以避免频繁的内存重新分配。 **1.2.29 resize** `resize` 函数用于更改字符串...