Domanda

Nel mio codice, ricevo un const char array come il seguente:

const char * myString = someFunction();

Ora voglio postelaborare come wchar array poiché le funzioni che uso poi non maneggiare le stringhe strette.

Qual è il modo più semplice per raggiungere questo obiettivo?

Alla fine MultiByteToWideChar? (Tuttavia, dal momento che è una stringa stretta che ricevo come input, non ha i caratteri multibyte => probabilmente non la più bella soluzione)

È stato utile?

Soluzione

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

Altri suggerimenti

MultiByteToWideChar funzionerà a meno che non si utilizza caratteri estesi nella stringa stretta. Se un alfa stringa numerica piana allora dovrebbe funzionare bene.

si può anche guardare mbstowcs che è un po 'meno complicata, ma non offre la stessa quantità di controllo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top