숯 어레이를 WCHAR 어레이로 변환하는 가장 쉬운 방법은 무엇입니까?
문제
내 코드에서 나는 a를 받는다 const char array
다음과 같이 :
const char * myString = someFunction();
이제 나는 그것을 a로 후 프로세스하고 싶습니다 wchar array
나중에 사용하는 기능은 좁은 문자열을 처리하지 않습니다.
이 목표를 달성하는 가장 쉬운 방법은 무엇입니까?
결국 MultibyteWideChar? (그러나 입력으로 얻는 좁은 문자열이므로 멀티 바이트 문자가 없습니다 => 아마도 가장 아름다운 솔루션은 아닐 것입니다)
해결책
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];
다른 팁
MultibyteWideChar는 좁은 문자열에서 확장 문자를 사용하지 않는 한 작동합니다. 일반 알파 숫자 문자열이라면 잘 작동합니다.
또한 약간 덜 복잡하지만 동일한 양의 제어를 제공하지 않는 MBSTOWCS를 볼 수 있습니다.
제휴하지 않습니다 StackOverflow