[C++] 문자열을 다루는 Data Type.
문자열을 다루는 Data Type
가장 최근 포스팅은 작년 이맘때였다….
취업을 하고 1년간 정신없어 바빴기에 (일도 하고 술도 먹고ㅎㅎ)
약 1년간 새로운 포스트를 올리지 못했다….
다음 달 첫째 주엔 근로자의 날, 어린이날 등 공휴일이 많으니
그동안 못 올렸던 내용들과 올리고 싶었던 내용들을 올리리라 다짐해본다….
이번 포스팅의 주제는 문자열을 다루는 Data Type 들에 대해서 정리를 해보았다.
요즘은 MFC 프로젝트를 자주 다루고 있는데
C++ 표준 라이브러리에서 제공하는 Data Type과
Windows API에서 제공하는 Data Type 들이
혼용되다 보니 헷갈려서 나름대로 정리가 필요하다고 느껴졌다.
| Data Type | 적합한 취급방식 | 구성 | 인코딩 방식 | 라이브러리 제공 | 비고 |
|---|---|---|---|---|---|
| char | ASCII, Multi Byte | 유동적으로 | C++ 표준 | ||
| char8_t | ASCII, Multi Byte | UTF-8 | C++ 표준 | ||
| char16_t | Unicode | C++ 표준 | |||
| char32_t | Unicode | C++ 표준 | |||
| wchar_t | Unicode | C++ 표준 | |||
| string | ASCII, Multi Byte | char | ASCII, CP949, UTF-8 | C++ 표준 | |
| u8string | ASCII, Multi Byte, Unicode | char | UTF-8 | C++ 표준 | |
| u16string | Unicode | char16_t | UTF-16 | C++ 표준 | |
| u32string | Unicode | char32_t | UTF-32 | C++ 표준 | |
| wstring | Unicode | wchar_t | UTF-16, UTF-32 | C++ 표준 | |
| basic_string<TCHAR> | ASCII, Multi Byte, Unicode | string or wstring | 유동적으로 | C++ 표준 | |
| Cstring | Unicode | wchar_t | Windows API | ||
| CStringA | Multi Byte | char | ANSI | Windows API | |
| LPSTR | ASCII, Multi Byte | char* | ANSI | Windows API | |
| LPCSTR | ASCII, Multi Byte | const char* | ANSI | Windows API | |
| LPWSTR | Unicode | wchar_t* | UTF-16, UCS-2 | Windows API | |
| LPTSTR | ASCII, Multi Byte, Unicode | LPSTR or LPWSTR | 유동적으로 | Windows API | 조건부컴파일 |
| LPCTSTR | ASCII, Multi Byte, Unicode | const TCHAR* | 유동적으로 | Windows API | 조건부컴파일 |
| LPWTSTR | ASCII, Multi Byte, Unicode | TCHAR* | 유동적으로 | Windows API | 조건부컴파일 |
| LPWCH | Unicode | WCHAR* | UTF-16, UTF-32 | Windows API | |
| LPCWCH | Unicode | const WCHAR* | UTF-16, UTF-32 | Windows API | |
| BSTR | Unicode | wchar_t | UTF-16 | Windows API | |
| CHAR | ASCII, Multi Byte | char | ANSI | Windows API | |
| TCHAR | Multi Byte, Unicode | wchar_t or char | 유동적으로 | Windows API | 조건부컴파일 |
| WCHAR | Unicode | UTF-16 | Windows API | wchar_t 와 동일 |
우선 정리한 내용은 위와 같고…. 충분히 틀린 내용이 있을 수도 있다.
잘못된 내용이 있거나 추가할 내용이 있다면 추후에 포스트를 수정할 예정이다.
※ Unicode = W (wide)
※ MBCS (Multi Byte Character Set) = A (ansi)
댓글남기기