#include #include #include using namespace std; string replace (const char *pt, std::function func) { string ret; while (*pt != '\0'){ const char *p = func(*pt); if (p != nullptr){ ret += p; }else{ ret += *pt; } pt++; } return ret; } int main () { string ret = replace("allo",[](auto a){return a=='a' ? "AA" : nullptr;}); printf ("ret=%s\n",ret.c_str()); return 0; }