Można użyć metody replace(size_t pos, size_t len, const char* s). A pozycje znaleźć metodą find.
std::string a = "11-11-2011";
while (a.find("-") < a.size()) { //dopóki znajduje myślnik w słowie
a.replace(a.find("-"), 1, "."); //zamienia myślnik na kropkę
}
cout << a;