gpt4 book ai didi

c++ - 格式化包含引号的字符串

转载 作者:行者123 更新时间:2023-11-30 00:57:40 28 4
gpt4 key购买 nike

我在格式化包含引号的字符串时遇到问题。

例如,我得到了这个 std::string:server/register?json={"id"="monkey"}

此字符串需要将四个引号替换为 \",因为它将用作另一个函数的 c_str()。

如何在这个字符串上以最好的方式做到这一点?

{"id"="monkey"}

编辑:我需要一个只使用 STL 库的解决方案,最好只使用 String.h。我已经确认我需要用\替换“”。

EDIT2:Nvm,发现框架中的错误

最佳答案

在 C 字符串中使用 '"' 字符是完全合法的。所以简短的回答是您什么都不用做。只有在输入源代码时才需要转义引号

std::string str("server/register?json={\"id\"=\"monkey\"}")
my_c_function(str.c_str());// Nothing to do here

但是,一般来说,如果您想用另一个子字符串替换子字符串,请使用增强字符串算法。

#include <boost/algorithm/string/replace.hpp>
#include <iostream>
int main(int, char**)
{
std::string str = "Hello world";
boost::algorithm::replace_all(str, "o", "a"); //modifies str
std::string str2 = boost::algorithm::replace_all_copy(str, "ll", "xy"); //doesn't modify str
std::cout << str << " - " << str2 << std::endl;
}
// Displays : Hella warld - Hexya warld

关于c++ - 格式化包含引号的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7569753/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com