вполне законно иметь символ '"' в 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