C++ 90 之 string替换

#include <iostream>
#include <string>
using namespace std;

int main()
{
//     string& replace(int pos, int n, const string& str); //替换从pos开始n个字符为字符串str
    string str1 = "abcdefghijhk";
    string str2 = "88";
    // str1.replace(1, 3,"9999999");
    str1.replace(1,3,str2);
    cout << str1 << endl;


// string& replace(int pos, int n, const char* s); //替换从pos开始的n个字符为字符串s

    string str3 = "abcdefghijhk";
    str3.replace(1,3,"8");
    cout << str3 << endl;
    return 0;
}

### C++中字符串替换方法 #### 使用`replace`函数实现字符串替换C++标准库中,`std::string`类提供了成员函数`replace`用于执行字符串内的部分替换操作。此功能允许指定起始位置以及要被替代的内容长度,并提供新的内容作为参数来完成替换过程[^1]。 ```cpp #include <iostream> #include <string> int main() { std::string str = "Hello World"; // 替换"World"为"C++" str.replace(str.find("World"), 5, "C++"); std::cout << str << std::endl; // 输出:Hello C++ } ``` 上述代码展示了如何通过调用`find`定位目标子串的位置并结合`replace`来进行具体的替换工作。 #### 利用`swap`交换特定索引处字符达到局部修改效果 除了直接使用`replace`外,在某些场景下也可以考虑采用`swap`方式对两个给定索引位置上的单个字符进行互换从而间接实现了简单的字符级别更改需求[^2]。 ```cpp #include <iostream> #include <string> int main() { std::string ch = "I Lvoe China."; // 将第4位和第5位字符互换(即修正拼写错误) std::swap(ch[3], ch[4]); std::cout << ch; } ``` 这段例子说明了当仅需调整个别字符顺序而不涉及较大范围变动时可选用这种方法。 #### 查找与替换综合应用实例 对于更复杂的模式匹配情况,则可能需要用到组合策略先找到待处理片段再实施相应变换动作。下面的例子演示了一个基于查找结果执行多次连续替换的过程[^3]: ```cpp #include <iostream> #include <string> void replaceAll(std::string& str, const std::string& from, const std::string& to) { size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(); } } int main(){ std::string text = "Heartbeat abcde aeiou e"; replaceAll(text,"abcde","ABCDE"); replaceAll(text,"aeiou","AEIOU"); std::cout<<text<<"\n"; // Heartbeat ABCDE AEIOU e } ``` 这里定义了一个辅助函数`replaceAll`用来遍历整个输入字符串并将所有出现的目标短语替换成新值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值