guarda, un esempio che fa quello che ti serve, viene passata una stringa, se ha il punto, quindi l'estensione, viene tolta e sostituita con quella di default, sennò solo aggiunta:

codice:
#include <string>//senza .h
 #include <iostream>//senza .h 
using namespace std; 

const string EXT = ".sav";

void RegularExt(string& e) {
	int pos = e.find(".", 0);
	if(pos != -1) e.erase(pos, e.size()-1);
	e.append(EXT);
}

int main() {
string a = "ciao.abc";
RegularExt(a);
cout << a << endl;
string b = "salvataggio";
RegularExt(b);
cout << b << endl;
	return 0;
}