值得一看
广告
彩虹云商城
广告

热门广告位

c++中如何替换字符串中的子串_c++字符串子串替换方法

使用find和replace可实现C++字符串替换,先查找子串位置再替换,循环处理可替换所有匹配项,封装成函数提高复用性,注意避免空串和死循环问题。

c++中如何替换字符串中的子串_c++字符串子串替换方法

在C++中,替换字符串中的子串可以通过标准库中的 std::string 提供的成员函数来实现。最常用的方法是结合 findreplace 函数完成查找与替换操作。

使用 find 和 replace 替换第一个匹配的子串

如果只想替换第一个出现的子串,可以先用 find 找到子串位置,再用 replace 进行替换。

示例代码:

std::string str = “Hello world, hello C++”;
std::string oldSubstr = “hello”;
std::string newSubstr = “Hi”;

size_t pos = str.find(oldSubstr);
if (pos != std::string::npos) {
  str.replace(pos, oldSubstr.length(), newSubstr);
}

// 输出: Hello world, Hi C++

替换所有匹配的子串

若要替换所有出现的子串,需要在一个循环中反复查找并替换,直到没有更多匹配项。

Swapface人脸交换

Swapface人脸交换

一款创建逼真人脸交换的AI换脸工具

Swapface人脸交换45

查看详情
Swapface人脸交换

示例代码:

std::string str = “Hello world, hello C++, hello again”;
std::string oldSubstr = “hello”;
std::string newSubstr = “Hi”;

size_t pos = 0;
while ((pos = str.find(oldSubstr, pos)) != std::string::npos) {
  str.replace(pos, oldSubstr.length(), newSubstr);
  pos += newSubstr.length(); // 避免重复替换新插入的内容
}

// 输出: Hello world, Hi C++, Hi again

封装成通用替换函数

为了提高复用性,可以把替换逻辑封装成一个函数。

立即学习“C++免费学习笔记(深入)”;

示例代码:

void replaceAll(std::string& str, const std::string& from, const std::string& to) {
  if (from.empty()) return;
  size_t pos = 0;
  while ((pos = str.find(from, pos)) != std::string::npos) {
    str.replace(pos, from.length(), to);
    pos += to.length();
  }
}

调用方式:
std::string text = “apple and apple”;
replaceAll(text, “apple”, “orange”);
// 结果: orange and orange

基本上就这些。C++标准库没有直接提供类似Python的 replace_all 方法,但通过 find 和 replace 组合就能灵活实现,关键是注意查找起始位置和避免死循环。

相关标签:

python app ai c++ apple 标准库 Python String if while 封装 成员函数 const 字符串 void 循环 Length

大家都在看:

怎样在C++中调用Python脚本_C++与Python交互方法详解
Python中面向对象编程的实现方式
printf输出格式python中引用什么
如何将 C++ 框架与 Python 技术集成?
如何将C++框架与python技术集成
温馨提示: 本文最后更新于2025-10-10 16:32:07,某些文章具有时效性,若有错误或已失效,请在下方留言或联系在线客服
文章版权声明 1 本网站名称: 创客网
2 本站永久网址:https://new.ie310.com
1 本文采用非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
2 本站所有内容仅供参考,分享出来是为了可以给大家提供新的思路。
3 互联网转载资源会有一些其他联系方式,请大家不要盲目相信,被骗本站概不负责!
4 本网站只做项目揭秘,无法一对一教学指导,每篇文章内都含项目全套的教程讲解,请仔细阅读。
5 本站分享的所有平台仅供展示,本站不对平台真实性负责,站长建议大家自己根据项目关键词自己选择平台。
6 因为文章发布时间和您阅读文章时间存在时间差,所以有些项目红利期可能已经过了,能不能赚钱需要自己判断。
7 本网站仅做资源分享,不做任何收益保障,创业公司上收费几百上千的项目我免费分享出来的,希望大家可以认真学习。
8 本站所有资料均来自互联网公开分享,并不代表本站立场,如不慎侵犯到您的版权利益,请联系79283999@qq.com删除。

本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END
喜欢就支持一下吧
点赞6赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容