// FindReplaceDemo.cpp
#include <iostream>
#include <string>
using namespace std;
template <class T, class C1, class C2>
void find_and_replace(T& source, const C1& find, const C2& replace)
{
size_t j;
T f = find;
T r = replace;
for (; (j = source.find(f)) != T::npos;)
source.replace(j, f.length(), r);
}
int main()
{
string s = "http://%s/cgi-bin/admin";
find_and_replace(s, "%s", "ATHENA");
cout << s << endl;
}