Вы можете попробовать использовать библиотеку регулярных выражений tr1.Следует отметить, что я не знаю, является ли это лучшим и быстрым способом, поэтому он может быть не совсем тем, о котором просил ОП.
#include <iostream>
#include <regex>
#include <string>
int main()
{
std::string str = "Hello Earth from Mars! Mars salutes Earth!";
std::tr1::regex rx("Mars");
std::string str2 = std::tr1::regex_replace(str, rx, std::string("Saturn"));
std::cout << str2 << endl;
return 0;
}
Регулярные выражения также будут доступны в следующем C ++ 0X.стандарт, поэтому вы должны исключить "tr1" из имени пространства имен, когда используете компилятор, совместимый со стандартом C ++ 0X (часть стандарта, реализующего библиотеку regex для C ++ 0X).