const WCHAR* 와 const wchar_t*는 실질적으로 같은 것
wstring은 문자열 관리에 적합한 문자열로 복사, 비교, 연산 다 가능
예시 코드
////////////////////////////////////////////////////////////////////////////////
// wchar_t* , WCHAR*
const wchar_t * cstr = L"hello";
////////////////////////////////////////////////////////////////////////////////
// wstring
std::wstring wstr = L"Hello";
wstr += L", World!";
////////////////////////////////////////////////////////////////////////////////
// wchar_t* -> wstring 변환
const wchar_t* cstr = L"Hello";
std::wstring wstr(cstr);
////////////////////////////////////////////////////////////////////////////////
// wstring -> wchar_t* 변환
std::wstring str = L"World";
const wchar_t* newStr = str.c_str();
※ 추가로 L" "을 문자열에 붙이는 이유
- L" "을 붙이지 않을 경우, const char * 로 간주하기 때문에 wchar_t* 와 같은 유니코드 문자열을 사용하는 wstring을 사용할 때는 붙여야한다.
- 영어 이외의 한국어와 같은 다국어를 문자열로 사용할 때는 L" "을 붙여 wchar_t* 형으로 쓴다. (영어일 때도 사용함)
// 예시코드 -> from ChatGPT
std::wstring str1 = "Hello"; // 오류 발생 (일반 문자열 리터럴은 char* 타입)
std::wstring str2 = L"Hello"; // 올바름 (유니코드 문자열 리터럴은 wchar_t* 타입)
string과 wstring 변환
// 예시코드
std::string str = "Hello";
std::wstring wstr(str.begin(), str.end()); // string -> wstring 간단 변환
'C++' 카테고리의 다른 글
| C++) 포인터 , 기초부터 다시하기 (2) | 2024.09.03 |
|---|---|
| C++) 재미로 해본 로또 번호 출력하기 (Feat. Insertion sort && Vector) (0) | 2024.08.20 |
| C++) Vector function (0) | 2024.07.13 |