>백엔드 개발 >C++ >C 문자열(또는 char 배열)을 wstring(또는 wchar_t 배열)로 효율적으로 변환하는 방법은 무엇입니까?

C 문자열(또는 char 배열)을 wstring(또는 wchar_t 배열)로 효율적으로 변환하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-26 02:12:09732검색

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

C 문자열(또는 char)을 wstring(또는 wchar_t)으로 변환

질문:

배열로 표현되는 문자열 s가 주어졌을 때 문자 및 wstring ws, 원본 내용을 왜곡하지 않고 s의 내용을 ws로 효율적으로 변환하려면 어떻게 해야 합니까?

답변:

이 문제를 해결하기 위해 표준 라이브러리(C 11 )는 UTF-8 및 UTF-16을 포함한 다양한 문자 인코딩 간의 변환을 위한 포괄적인 지원을 제공합니다. 다음은 표준 라이브러리를 사용하는 강력한 솔루션입니다.

#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);

추가 참고 사항:

  • codecvt_utf8_utf16 변환기는 UTF-8( 입력 문자열 s) 및 UTF-16(출력 wstring에 사용됨) ws).
  • wstring_convert 클래스는 이러한 변환을 수행하는 편리하고 효율적인 방법을 제공합니다.
  • C 17 이상에서는 std::charconv 라이브러리를 위해 codecvt 헤더가 더 이상 사용되지 않습니다. . 그러나 여기에 제시된 솔루션은 가까운 미래에도 계속 작동할 것입니다.

위 내용은 C 문자열(또는 char 배열)을 wstring(또는 wchar_t 배열)로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.