#include <iostream>
#include <iomanip>
#include <string>
int main()
{
std::string a = "\\u00c1\\u00c4\\u00d3 sdfsd";
std::wstring ws;
ws.reserve(a.size());
for(size_t i = 0; i < a.size();)
{
char ch = a[i++];
if ((ch == '\\') && (i < a.size()) && (a[i] == 'u'))
{
wchar_t wc = static_cast<wchar_t>(std::stoi(a.substr(++i, 4), nullptr, 16));
i += 4;
ws.push_back(wc);
}
else {
ws.push_back(static_cast<wchar_t>(ch));
}
}
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;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KI2luY2x1ZGUgPHN0cmluZz4KCmludCBtYWluKCkKewoJc3RkOjpzdHJpbmcgYSA9ICJcXHUwMGMxXFx1MDBjNFxcdTAwZDMgc2Rmc2QiOwoKCXN0ZDo6d3N0cmluZyB3czsKCXdzLnJlc2VydmUoYS5zaXplKCkpOwoKCWZvcihzaXplX3QgaSA9IDA7IGkgPCBhLnNpemUoKTspCgl7CiAgICAJY2hhciBjaCA9IGFbaSsrXTsKCgkgICAgaWYgKChjaCA9PSAnXFwnKSAmJiAoaSA8IGEuc2l6ZSgpKSAmJiAoYVtpXSA9PSAndScpKQogICAgCXsKICAgICAgICAJd2NoYXJfdCB3YyA9IHN0YXRpY19jYXN0PHdjaGFyX3Q+KHN0ZDo6c3RvaShhLnN1YnN0cigrK2ksIDQpLCBudWxscHRyLCAxNikpOwoJICAgICAgICBpICs9IDQ7CiAgICAJICAgIHdzLnB1c2hfYmFjayh3Yyk7CiAgICAJfQogICAgCWVsc2UgewogICAgICAgIAl3cy5wdXNoX2JhY2soc3RhdGljX2Nhc3Q8d2NoYXJfdD4oY2gpKTsKICAgIAl9Cgl9CgoJc3RkOjp3Y291dCA8PCB3cy5zaXplKCkgPDwgTCIgIiA8PCB3cyA8PCBzdGQ6OmVuZGw7Cglmb3Ioc2l6ZV90IGkgPSAwOyBpIDwgd3Muc2l6ZSgpOyArK2kpIHsKCSAgICBzdGQ6Ondjb3V0IDw8IEwid3NbIiA8PCBpIDw8IEwiXSA9ICIgPDwgc3RkOjpoZXggPDwgc3RkOjpzZXR3KDQpIDw8IHN0ZDo6c2V0ZmlsbChMJzAnKSA8PCBzdGF0aWNfY2FzdDxpbnQ+KHdzW2ldKSA8PCBzdGQ6OmVuZGw7Cgl9CgkKCXJldHVybiAwOwp9