Maison > développement back-end > C++ > Comment convertir efficacement une chaîne C (ou un tableau de caractères) en un wstring (ou un tableau wchar_t) ?

Comment convertir efficacement une chaîne C (ou un tableau de caractères) en un wstring (ou un tableau wchar_t) ?

Linda Hamilton
Libérer: 2024-12-26 02:12:09
original
768 Les gens l'ont consulté

How to Efficiently Convert a C   String (or char array) to a wstring (or wchar_t array)?

C Convertir une chaîne (ou char) en wstring (ou wchar_t)

Question :

Étant donné une chaîne s représentée comme un tableau de caractères et une wstring ws, comment convertissez-vous efficacement le contenu de s en ws sans déformer le contenu original ?

Réponse :

Pour résoudre ce problème, la bibliothèque standard (C 11 ) fournit des prise en charge de la conversion entre différents codages de caractères, notamment UTF-8 et UTF-16. Voici une solution robuste utilisant la bibliothèque standard :

#include <locale>
#include <codecvt>
#include <string>

std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
// Convert string to wstring
std::wstring ws = converter.from_bytes(s);
Copier après la connexion

Notes supplémentaires :

  • Le convertisseur codecvt_utf8_utf16 gère la conversion entre UTF-8 (utilisé dans le chaîne d'entrée s) et UTF-16 (utilisé dans la chaîne de sortie ws).
  • La classe wstring_convert fournit un moyen pratique et efficace d'effectuer ces conversions.
  • En C 17 et versions ultérieures, l'en-tête codecvt est obsolète au profit de la bibliothèque std::charconv . Cependant, la solution présentée ici devrait continuer à fonctionner dans un avenir prévisible.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal