Моя переменная находится в определенной внутренней реализации большой строки, но я могу легко получить ее как широкий массив символов. Проблема в том, что мне нужно передать его библиотечной функции, которая будет принимать только массивы символов.Самый простой способ преобразовать широкий массив или массив символов в простой массив символов?
Так что я в конечном итоге с тем, что выглядит следующим образом:
wchar_t* wstr;
// char* str = "need some processing here";
function(str);
Итак, есть простой способ, или я должен просто делать это вручную посимвольно?
'wcstombs' должен работать. – chris
Это зависит от того, что вы пытаетесь сделать с результатом, и тем, что содержит оригинал. Если вы просто хотите обрабатывать символы ASCII, вам нужно будет: 'std :: ctype :: narrow()'. Если функция ожидает кодирования с байтабайтом, то требуется что-то вроде 'wcstombs()'. Обратите внимание, что последние обычно не считаются символами, а представляют собой последовательность байтов. –
Кажется, это работает для меня, хотя я нашел лучшее решение для своей проблемы, которое не требует этого преобразования. Но все равно спасибо. –