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