1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #include <iostream> #include <string> #include <map> int main() { std::string xml("a < > & ' \" string"); std::cout << xml << "\n"; // Characters to be transformed. // std::map<char, std::string> transformations; transformations['&'] = std::string("&"); transformations['\''] = std::string("'"); transformations['"'] = std::string("""); transformations['>'] = std::string(">"); transformations['<'] = std::string("<"); // Build list of characters to be searched for. // std::string reserved_chars; for (auto ti = transformations.begin(); ti != transformations.end(); ti++) { reserved_chars += ti->first; } size_t pos = 0; while (std::string::npos != (pos = xml.find_first_of(reserved_chars, pos))) { xml.replace(pos, 1, transformations[xml[pos]]); pos++; } std::cout << xml << "\n"; return 0; } |
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgoKaW50IG1haW4oKQp7CiAgICBzdGQ6OnN0cmluZyB4bWwoImEgPCA+ICYgJyBcIiBzdHJpbmciKTsKICAgIHN0ZDo6Y291dCA8PCB4bWwgPDwgIlxuIjsKCiAgICAvLyBDaGFyYWN0ZXJzIHRvIGJlIHRyYW5zZm9ybWVkLgogICAgLy8KICAgIHN0ZDo6bWFwPGNoYXIsIHN0ZDo6c3RyaW5nPiB0cmFuc2Zvcm1hdGlvbnM7CiAgICB0cmFuc2Zvcm1hdGlvbnNbJyYnXSAgPSBzdGQ6OnN0cmluZygiJmFtcDsiKTsKICAgIHRyYW5zZm9ybWF0aW9uc1snXCcnXSA9IHN0ZDo6c3RyaW5nKCImYXBvczsiKTsKICAgIHRyYW5zZm9ybWF0aW9uc1snIiddICA9IHN0ZDo6c3RyaW5nKCImcXVvdDsiKTsKICAgIHRyYW5zZm9ybWF0aW9uc1snPiddICA9IHN0ZDo6c3RyaW5nKCImZ3Q7Iik7CiAgICB0cmFuc2Zvcm1hdGlvbnNbJzwnXSAgPSBzdGQ6OnN0cmluZygiJmx0OyIpOwoKICAgIC8vIEJ1aWxkIGxpc3Qgb2YgY2hhcmFjdGVycyB0byBiZSBzZWFyY2hlZCBmb3IuCiAgICAvLwogICAgc3RkOjpzdHJpbmcgcmVzZXJ2ZWRfY2hhcnM7CiAgICBmb3IgKGF1dG8gdGkgPSB0cmFuc2Zvcm1hdGlvbnMuYmVnaW4oKTsgdGkgIT0gdHJhbnNmb3JtYXRpb25zLmVuZCgpOyB0aSsrKQogICAgewogICAgICAgIHJlc2VydmVkX2NoYXJzICs9IHRpLT5maXJzdDsKICAgIH0KCiAgICBzaXplX3QgcG9zID0gMDsKICAgIHdoaWxlIChzdGQ6OnN0cmluZzo6bnBvcyAhPSAocG9zID0geG1sLmZpbmRfZmlyc3Rfb2YocmVzZXJ2ZWRfY2hhcnMsIHBvcykpKQogICAgewogICAgICAgIHhtbC5yZXBsYWNlKHBvcywgMSwgdHJhbnNmb3JtYXRpb25zW3htbFtwb3NdXSk7CiAgICAgICAgcG9zKys7CiAgICB9CgogICAgc3RkOjpjb3V0IDw8IHhtbCA8PCAiXG4iOwoKICAgIHJldHVybiAwOwp9Cg==
-
upload with new input
-
result: Success time: 0s memory: 2968 kB returned value: 0
a < > & ' " string a < > & ' " string


