У меня есть wstring, что лучше всего преобразовать ее в строку в скрытой форме, например \u043d\u043e\u043c\u0430
?Как преобразовать wstring в строку как escapes
Один ниже работ, но, кажется, не лучшим:
string output;
for (wchar_t chr : wtst) {
char code[7];
sprintf(code,"\\u%0.4X",chr);
output += code;
}
Если это «не кажется лучшим», могу ли я спросить, что вы (а) сравниваете с этим, и (б) почему вы не используете * это *? – WhozCraig
он не компактен, занимает несколько строк кода. Я думаю, что может быть уже один однострочный конвертер в boost или std. –
В стандартной библиотеке нет конвертера для этого, и если есть один в boost, было бы трудно быть более компактным, чем шесть строк кода реализации. Разумеется, сторона * вызывающего абонента (вы) была бы значительно уплотнена отношением ок. 83%, если такой конвертер * существует *. Опять же, введенная зависимость, безусловно, будет больше шести строк. Могли бы вы сделать * этот * более эффективным? Конечно. Начните с '.reserve()' в некоторой емкости. – WhozCraig