Frage

In meinem Code, erhalte ich eine const char array wie folgt aus:

const char * myString = someFunction();

Jetzt möchte ich es als wchar array da die Funktionen nachbearbeiten ich später verwenden nicht behandeln schmalen Saiten.

Was ist der einfachste Weg, um dieses Ziel zu erreichen?

Schließlich MultiByteToWideChar? (Da es jedoch eine schmale Zeichenfolge ist, die ich als Input bekommen, ist es nicht Mehrbytezeichen haben => wahrscheinlich nicht die schönste Lösung)

War es hilfreich?

Lösung

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];

Andere Tipps

MultiByteToWideChar wird funktionieren, wenn Sie erweiterte Zeichen in Ihrem engen String verwenden. Wenn es eine einfache alphanumerische Zeichenfolge dann sollte es funktionieren.

Sie können auch bei mbstowcs schauen was etwas weniger gewunden ist aber die gleiche Menge an Kontrolle nicht bieten.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top