#include <iostream>
#include <string>
#include <set>
std::string escape(const char* src, const std::set<char> escapee, const char marker)
{
std::string r;
while (char c = *src++)
{
if (escapee.find(c) != escapee.end())
r += marker;
// r += c;
r += c == '\n' ? 'n' : c;
}
return r;
}
int main()
{
std::string r = escape("\\this\" is a test\nthis is the second line", { ' ' }, '\\');
std::cout << r;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8c2V0PgoKc3RkOjpzdHJpbmcgZXNjYXBlKGNvbnN0IGNoYXIqIHNyYywgY29uc3Qgc3RkOjpzZXQ8Y2hhcj4gZXNjYXBlZSwgY29uc3QgY2hhciBtYXJrZXIpCnsKICBzdGQ6OnN0cmluZyByOwogIHdoaWxlIChjaGFyIGMgPSAqc3JjKyspCiAgewogICAgaWYgKGVzY2FwZWUuZmluZChjKSAhPSBlc2NhcGVlLmVuZCgpKQogICAgICByICs9IG1hcmtlcjsKICAgIC8vIHIgKz0gYzsKICAgIHIgKz0gYyA9PSAnXG4nID8gJ24nIDogYzsKICB9CiAgcmV0dXJuIHI7Cn0KCmludCBtYWluKCkKewogIHN0ZDo6c3RyaW5nIHIgPSBlc2NhcGUoIlxcdGhpc1wiIGlzIGEgdGVzdFxudGhpcyBpcyB0aGUgc2Vjb25kIGxpbmUiLCB7ICcgJyB9LCAnXFwnKTsKICBzdGQ6OmNvdXQgPDwgcjsKfQoK