#include <iostream>
#include <iomanip>
#include <string>
int main()
{
std::string a = "\\u039D\\u1FD1\\u03BA\\u03CC\\u03BB\\u03B1\\u03BF\\u03C2 asdasd";
std::wstring ws;
ws.reserve(a.size());
size_t start = 0;
do
{
size_t found = a.find("\\u", start);
if (found == std::string::npos) break;
if (start < found)
ws.insert(ws.end(), a.begin()+start, a.begin()+found);
wchar_t wc = static_cast<wchar_t>(std::stoi(a.substr(found+2, 4), nullptr, 16));
ws.push_back(wc);
start = found + 6;
}
while (true);
if (start < a.size())
ws.insert(ws.end(), a.begin()+start, a.end());
std::wcout << ws.size() << L" " << ws << std::endl;
for(size_t i = 0; i < ws.size(); ++i) {
std::wcout << L"ws[" << i << L"] = " << std::hex << std::setw(4) << std::setfill(L'0') << static_cast<int>(ws[i]) << std::endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHN0cmluZz4KCmludCBtYWluKCkKewoJc3RkOjpzdHJpbmcgYSA9ICJcXHUwMzlEXFx1MUZEMVxcdTAzQkFcXHUwM0NDXFx1MDNCQlxcdTAzQjFcXHUwM0JGXFx1MDNDMiBhc2Rhc2QiOwoKCXN0ZDo6d3N0cmluZyB3czsKCXdzLnJlc2VydmUoYS5zaXplKCkpOwoKCXNpemVfdCBzdGFydCA9IDA7CglkbwoJewoJCXNpemVfdCBmb3VuZCA9IGEuZmluZCgiXFx1Iiwgc3RhcnQpOwoJCWlmIChmb3VuZCA9PSBzdGQ6OnN0cmluZzo6bnBvcykgYnJlYWs7CgoJCWlmIChzdGFydCA8IGZvdW5kKQoJCQl3cy5pbnNlcnQod3MuZW5kKCksIGEuYmVnaW4oKStzdGFydCwgYS5iZWdpbigpK2ZvdW5kKTsKCgkJd2NoYXJfdCB3YyA9IHN0YXRpY19jYXN0PHdjaGFyX3Q+KHN0ZDo6c3RvaShhLnN1YnN0cihmb3VuZCsyLCA0KSwgbnVsbHB0ciwgMTYpKTsKCQl3cy5wdXNoX2JhY2sod2MpOwoKCQlzdGFydCA9IGZvdW5kICsgNjsKCX0KCXdoaWxlICh0cnVlKTsKCglpZiAoc3RhcnQgPCBhLnNpemUoKSkKCQl3cy5pbnNlcnQod3MuZW5kKCksIGEuYmVnaW4oKStzdGFydCwgYS5lbmQoKSk7CgoJc3RkOjp3Y291dCA8PCB3cy5zaXplKCkgPDwgTCIgIiA8PCB3cyA8PCBzdGQ6OmVuZGw7Cglmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgd3Muc2l6ZSgpOyArK2kpIHsKCSAgICBzdGQ6Ondjb3V0IDw8IEwid3NbIiA8PCBpIDw8IEwiXSA9ICIgPDwgc3RkOjpoZXggPDwgc3RkOjpzZXR3KDQpIDw8IHN0ZDo6c2V0ZmlsbChMJzAnKSA8PCBzdGF0aWNfY2FzdDxpbnQ+KHdzW2ldKSA8PCBzdGQ6OmVuZGw7Cgl9CgkKCXJldHVybiAwOwp9