Understanding the various character and string types
In the previous recipe, we looked at the variety of integral and floating-point types. Another category of types, character types, is often a source of misunderstanding and confusion. As of C++20, there are five character data types in the C++ language: char
, wchar_t
, char8_t
, char16_t
, and char32_t
. In this recipe, we will look at how these types differ and how they are meant to be used.
How to do it…
Use the available character types as follows:
- The
char
type to store ASCII characters, Latin character sets (defined in the ISO-8859 standard), or even individual bytes of UTF-8 encoded characters:char c = 'C'; const char* s = "C++"; std::cout << c << s << '\n';
- The
wchar_t
type with the Windows API to store and manipulate UTF-16LE encoded characters:wchar_t c = L'Ʃ'; const wchar_t* s = L"δῆ...