If s is a std::string, then is there a function like the following?
s.replace(\"text to replace\", \"new text\");
Try a combination of std::string::find and std::string::replace.
This gets the position:
std::string s;
std::string toReplace("text to replace");
size_t pos = s.find(toReplace);
And this replaces the first occurrence:
s.replace(pos, toReplace.length(), "new text");
Now you can simply create a function for your convenience:
std::string replaceFirstOccurrence(
std::string& s,
const std::string& toReplace,
const std::string& replaceWith)
{
std::size_t pos = s.find(toReplace);
if (pos == std::string::npos) return s;
return s.replace(pos, toReplace.length(), replaceWith);
}