Quelle est la meilleure façon de convertir un tableau de caractères à un tableau WCHAR?

StackOverflow https://stackoverflow.com/questions/1846032

  •  12-09-2019
  •  | 
  •  

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)

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top