char, wchar_t, char8_t, char16_t, char32_t
형식char
, wchar_t
, char8_t
char16_t
및 char32_t
영숫자 문자, 영숫자가 아닌 문자 및 인쇄되지 않은 문자를 나타내는 기본 제공 형식입니다.
구문
char ch1{ 'a' }; // or { u8'a' }
wchar_t ch2{ L'a' };
char16_t ch3{ u'a' };
char32_t ch4{ U'a' };
설명
C char
및 C++의 원래 문자 형식이었습니다. 이 형식은 char
ASCII 문자 집합 또는 ISO-8859 문자 집합의 문자와 Shift-JIS 또는 유니코드 문자 집합의 UTF-8 인코딩과 같은 멀티바이트 문자의 개별 바이트를 저장하는 데 사용할 수 있습니다. Microsoft 컴파일러 char
에서 8비트 형식입니다. 이 형식은 둘 다 signed char
와 뚜렷한 형식입니다 unsigned char
. 기본적으로 형식 char
의 변수는 컴파일러 옵션을 사용하지 않는 한 /J
형식 signed char
에서 온 것처럼 승격 int
됩니다. 아래에서 /J
형식 unsigned char
으로 처리되고 서명 확장 없이 승격됩니다 int
.
이 형식 unsigned char
은 C++의 기본 제공 형식이 아닌 바이트를 나타내는 데 자주 사용됩니다.
이 형식은 wchar_t
구현에서 정의한 와이드 문자 형식입니다. Microsoft 컴파일러에서는 Windows 운영 체제의 네이티브 문자 형식인 UTF-16LE로 인코딩된 유니코드를 저장하는 데 사용되는 16비트 와이드 문자를 나타냅니다. UCRT(유니버설 C 런타임) 라이브러리 함수의 와이드 문자 버전은 네이티브 Windows API의 와이드 문자 버전과 마찬가지로 해당 포인터 및 배열 형식을 매개 변수 및 반환 값으로 사용합니다 wchar_t
.
, char16_t
및 char32_t
형식은 char8_t
각각 8비트, 16비트 및 32비트 너비 문자를 나타냅니다. (char8_t
C++20의 새로운 기능이며 또는 /std:c++latest
컴파일러 옵션이 필요합니다/std:c++20
.) UTF-8로 인코딩된 유니코드는 형식에 char8_t
저장할 수 있습니다. char8_t
유니코드 또는 멀티 바이트 문자를 인코딩하는 데 사용되는 경우에도 문자열 및 char
형식을 좁은 문자열이라고 합니다. UTF-16으로 인코딩된 유니코드는 형식에 char16_t
저장할 수 있으며, UTF-32로 인코딩된 유니코드는 형식에 char32_t
저장할 수 있습니다. 이러한 형식의 문자열은 wchar_t
모두 와이드 문자열이라고 하지만, 용어는 형식의 wchar_t
문자열을 구체적으로 참조하는 경우가 많습니다.
C++ 표준 라이브러리 basic_string
에서 형식은 좁은 문자열과 와이드 문자열 모두에 대해 특수화됩니다. 문자가 형식char
일 때, std::u8string
문자가 형식char8_t
일 때, std::u16string
문자가 형식char16_t
일 때, std::u32string
문자가 형식일 때, std::wstring
문자가 형식wchar_t
char32_t
인 경우를 사용합니다std::string
. 좁고 std::cout
넓은 문자열에 대한 특수화를 포함하여 std::stringstream
텍스트를 나타내는 다른 형식입니다.
피드백
https://aka.ms/ContentUserFeedback
출시 예정: 2024년 내내 콘텐츠에 대한 피드백 메커니즘으로 GitHub 문제를 단계적으로 폐지하고 이를 새로운 피드백 시스템으로 바꿀 예정입니다. 자세한 내용은 다음을 참조하세요.다음에 대한 사용자 의견 제출 및 보기