#include <iostream>
#include <string>
int main()
{
std::string str = "<|he[l]lo|>";
std::cout << "Before: " << str << std::endl;
std::string::size_type pos = 0;
while ((pos = str.find_first_of("|[]", pos)) != std::string::npos)
{
std::cout << "insde";
switch (str[pos])
{
case '|':
str.replace(pos, 1, "\\|");
pos += 2;
break;
case '[':
str.replace(pos, 1, "\\[");
std::cout << "in here";
pos += 2;
break;
case ']':
str.replace(pos, 1, "\\]");
pos += 2;
break;
}
}
std::cout << "After: " << str << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKaW50IG1haW4oKQp7CglzdGQ6OnN0cmluZyBzdHIgPSAiPHxoZVtsXWxvfD4iOwoKCXN0ZDo6Y291dCA8PCAiQmVmb3JlOiAiIDw8IHN0ciA8PCBzdGQ6OmVuZGw7CgkKCXN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgcG9zID0gMDsKCXdoaWxlICgocG9zID0gc3RyLmZpbmRfZmlyc3Rfb2YoInxbXSIsIHBvcykpICE9IHN0ZDo6c3RyaW5nOjpucG9zKQoJewoJCXN0ZDo6Y291dCA8PCAiaW5zZGUiOwogICAgCXN3aXRjaCAoc3RyW3Bvc10pCgkgICAgeyAKICAgIAkgICAgY2FzZSAnfCc6CiAgICAgICAgCSAgICBzdHIucmVwbGFjZShwb3MsIDEsICJcXHwiKTsKICAgICAgICAgICAgCXBvcyArPSAyOwoJICAgICAgICAgICAgYnJlYWs7CiAgICAJICAgIGNhc2UgJ1snOgogICAgICAgIAkgICAgc3RyLnJlcGxhY2UocG9zLCAxLCAiXFxbIik7CiAgICAgICAgCSAgICBzdGQ6OmNvdXQgPDwgImluIGhlcmUiOwogICAgICAgICAgICAJcG9zICs9IDI7CiAgICAgICAgICAgIAlicmVhazsKCSAgICAgICAgY2FzZSAnXSc6CiAgICAJICAgICAgICBzdHIucmVwbGFjZShwb3MsIDEsICJcXF0iKTsKICAgICAgICAJICAgIHBvcyArPSAyOwogICAgICAgICAgICAJYnJlYWs7CgkJfQoJfQoKCXN0ZDo6Y291dCA8PCAiQWZ0ZXI6ICIgPDwgc3RyIDw8IHN0ZDo6ZW5kbDsKCglyZXR1cm4gMDsKfQ==