Quelle est la meilleure façon de convertir un tableau de caractères à un tableau WCHAR?
Question
Dans mon code, je reçois un const char array
comme suit:
const char * myString = someFunction();
Maintenant, je veux comme un post-traitement wchar array
car les fonctions que j'utilise ensuite ne pas manipuler les chaînes étroites.
Quelle est la meilleure façon d'atteindre cet objectif?
Finalement MultiByteToWideChar? (Cependant, étant donné qu'il est une chaîne étroite que je reçois en entrée, il ne dispose pas des caractères multi-octets => probablement pas la plus belle solution)
La solution
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];
Autres conseils
MultiByteToWideChar fonctionnera à moins que vous utilisez des caractères étendus dans votre chaîne étroite. Si son une chaîne numérique alpha plaine il devrait fonctionner correctement.
vous pouvez également regarder mbstowcs qui est un peu moins alambiquée, mais ne propose pas la même quantité de contrôle.