// 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;
}