[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)
댓글남기기