void hoge(void) { std::cout << "hoge" << std::endl; }
void fuga(void) { std::cout << "fuga" << std::endl; }

map<string, void (*)(void)> m;
m["hoge"] = hoge;
m["fuga"] = fuga;

string s;
cin >> s;

map<string, void (*)(void)>::iterator i(m.find(s));
if(i != m.end()) { (*i)(); }