将字符串的一部分替换为另一个字符串

2023-11-25

如何使用以下命令将字符串的一部分替换为另一个字符串标准 C++ 库?

QString s("hello $name");  // Example using Qt.
s.replace("$name", "Somename");

有一个函数可以在字符串中查找子字符串(find),以及一个用另一个字符串替换字符串中特定范围的函数(replace),因此您可以将它们组合起来以获得您想要的效果:

bool replace(std::string& str, const std::string& from, const std::string& to) {
    size_t start_pos = str.find(from);
    if(start_pos == std::string::npos)
        return false;
    str.replace(start_pos, from.length(), to);
    return true;
}

std::string string("hello $name");
replace(string, "$name", "Somename");

在回复评论时,我认为replaceAll可能看起来像这样:

void replaceAll(std::string& str, const std::string& from, const std::string& to) {
    if(from.empty())
        return;
    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(); // In case 'to' contains 'from', like replacing 'x' with 'yx'
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将字符串的一部分替换为另一个字符串 的相关文章

随机推荐

  • 从基类方法返回派生类型

    我有一个与此类似的类层次结构 public class Base private List
  • UWP - 通过套接字将网络摄像头流式传输到 MediaElement - 图片损坏?

    背景 我编写的代码记录来自网络摄像头的视频剪辑 将它们写入内存流 然后通过套接字连接传输数据 在该连接中数据被重新组合成视频并在媒体元素上播放 最终目标是创建一个婴儿监视器系统 服务器 摄像头在 Windows IOT Raspberry
  • 我可以使用 python 默认库集加密电子邮件并将其解密吗?

    当然 类似的问题已经在 stackoverflow 中提出 但我不想使用任何第三方库 例如 Crypto 或其他库 因此 我需要从用户电子邮件生成密文并将其解密回明文 我怎样才能在Python中做到这一点 第三方系统是您最好的选择 如果您真
  • 在 C++ 中渲染矢量图形 (.svg)

    我和一个朋友正在开发一款 2D 游戏 其中图形将是 svg 文件 我们将通过首先光栅化它们或直接将它们渲染在表面上 在某些时候仍然需要光栅化 来适当缩放它们 问题是 我一整天都在寻找一个库 它允许我获取 svg 文件并最终让它在 alleg
  • 在 VBScript 中创建多选列表框 [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我想创建一个 VBScript 不在 HTML 文件内 为用户提供可供选择的文档列表 然后使用这些选择为他们选择的每个文档运行另一个脚本 如何创建这个列表框 WSH VBS 的某
  • udf 与直接 sql 性能比较

    使用MSSQL 2005 我今天在 where 语句中使用标量 UDF 来查看与进行调用和 io 差异等相关的一些成本 我从两张基本表格开始 拥有 100 万行的客户 和购买有 100 000 两者都有一个自动标识列作为主键 没有定义其他索
  • 使用 xdotool 自动网页刷新 - 窗口焦点后不发送密钥

    Given 我有 Firefox 火狐页面标题 在我的 Ubuntu 计算机上打开页面 这是我的命令 xdotool search Firefox Page Title windowactivate sync key clearmodifi
  • getaddrinfo EAI_AGAINregistry.npmjs.org:80

    大家好 我正在尝试在 npm 中发布我的角度库 但是当我登录时 我得到了这个 npm ERR code EAI AGAIN npm ERR errno EAI AGAIN npm ERR request to http registry n
  • AWS Lambda 无法调用 Cognito Identity - IAM 角色

    我有一些 javascript 可以在我的本地计算机上运行 但不能在 Lambda 中运行 调用时超时cognitoidentity getOpenIdTokenForDeveloperIdentity errorMessage 2016
  • 我可以在自定义中间件中添加新的范围服务吗?

    我在 Asp Net Core 中使用 WebApi 我想知道是否 如何添加一个新的范围服务 所有以下中间件和控制器都可以通过依赖注入访问该服务 或者我应该与 HttpContext Items 共享状态 这似乎不是它的目的 因为 Http
  • 将字符串转换为浮点数据类型

    我需要将文本框 即货币 的内容转换为浮点数数据类型 我会转为单身吗 txtPurchItemCorrectPrice Text Trim 如果您正在处理货币 那么我会使用double至少 如果没有的话decimal 这就是说你想要 doub
  • Mapcat打破懒惰

    我有一个生成惰性序列的函数 称为 a function 如果我运行代码 map a function a sequence of values 它按预期返回一个惰性序列 但是当我运行代码时 mapcat a function a seque
  • 如何将 mat 转换为图像

    我需要将 Emgu CV 中的 Mat 转换为图像 尝试将 Mat 转换为图像会产生异常 Cannot implicitly convert type Emgu CV Mat to Emgu CV Image Image
  • 如何计算 Git 中两次提交之间更改的行数?

    有没有简单的方法来计算 Git 中两次提交之间更改的行数 我知道我可以做一个git diff 并计算行数 但这似乎很乏味 我还想知道如何做到这一点 仅包括我自己的提交行数 你想要的 stat的选项git diff 或者如果您想在脚本中解析它
  • 是否存在用于多个读取或写入线程的无锁队列之类的东西?

    我在想 是否有可能有一个lockless排队时超过一个线程是读还是写 我见过一种无锁队列的实现 该队列使用一个读取线程和一个写入线程 但任一线程都不会超过一个 是否可以 我不认为是这样 可以 有人想证明吗 有多种算法可用 我最终实现了无锁
  • 如何访问Android中的下载文件夹?

    我是新的android 我正在制作一个应用程序 可以在其中将文件下载到下载文件夹 使用下载管理器 如果我转到模拟器中的下载文件夹 我可以看到图片 那么 如果我想显示下载文件的幻灯片 如何才能访问该文件夹 其次如何向此代码添加进度条 impo
  • 如何自动验证 Windows 集成而不弹出登录窗口?

    我用default aspx 编写了一个asp net 应用程序 当我点击此页面时 它询问我 Windows 登录弹出窗口 我的应用程序应该需要 Windows 身份验证 但它应该 集成 Windows 身份验证 如果我输入登录密码 我就可
  • Twitter Bootstrap - 导航栏内的下拉菜单但导航折叠外

    我想向导航栏添加一个下拉菜单 但请确保当浏览器调整为更窄的宽度时 下拉菜单在导航栏中保持可见 并且不包含在导航折叠中 下面的 html 有效 然而 当页面大小调整时 下拉菜单会下降到下一行 并在导航栏中显示展开 从而留下一个非常深的导航栏
  • Xamarin.Forms 在 VS 上有设计器支持吗?

    我最近下载了 Xamarin Forms 因为 Microsoft 免费提供了它 我正在 Visual Studio 中寻找视觉设计器 它通常包含在 Xamarin Droid 和 Xamarin IOS 中 Xamarin Forms没有
  • 将字符串的一部分替换为另一个字符串

    如何使用以下命令将字符串的一部分替换为另一个字符串标准 C 库 QString s hello name Example using Qt s replace name Somename 有一个函数可以在字符串中查找子字符串 find 以及