Каков самый простой способ преобразовать массив символов в массив WCHAR?

StackOverflow https://stackoverflow.com/questions/1846032

  •  12-09-2019
  •  | 
  •  

Вопрос

В моем коде я получаю const char array как следующее:

const char * myString = someFunction();

Теперь я хочу постобработать его как wchar array поскольку функции, которые я использую впоследствии, не обрабатывают узкие строки.

Какой самый простой способ достичь этой цели?

В конце концов MultiByteToWideChar?(Однако, поскольку это узкая строка, которую я получаю в качестве входных данных, в ней нет многобайтовых символов =>, вероятно, не самое красивое решение)

Это было полезно?

Решение

const char * myString = someFunction();
const int len = strlen(myString);
std::vector<wchar_t> myWString (len);
std::copy(myString, myString + len, myWString.begin());
const wchar_t * result = &myWString[0];

Другие советы

MultiByteToWideChar будет работать, если вы не используете расширенные символы в узкой строке.Если это простая буквенно-цифровая строка, она должна работать нормально.

вы также можете посмотреть mbstowcs, который немного менее запутан, но не предлагает такого же уровня контроля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top