char, wchar_t, char8_t, char16_t, char32_t
Jenis char
, , wchar_t
char8_t
, char16_t
, dan char32_t
adalah jenis bawaan yang mewakili karakter alfanumerik, glyph nonalphanumeric, dan karakter noncetak.
Sintaks
char ch1{ 'a' }; // or { u8'a' }
wchar_t ch2{ L'a' };
char16_t ch3{ u'a' };
char32_t ch4{ U'a' };
Keterangan
Jenisnya char
adalah jenis karakter asli di C dan C++. Jenis ini char
menyimpan karakter dari kumpulan karakter ASCII atau salah satu set karakter ISO-8859, dan byte individual karakter multi-byte seperti Shift-JIS atau pengodean UTF-8 dari kumpulan karakter Unicode. Di pengkompilasi Microsoft, char
adalah jenis 8-bit. Ini adalah jenis yang berbeda dari dan signed char
unsigned char
. Secara default, variabel jenis char
dipromosikan ke int
seolah-olah dari jenis signed char
kecuali /J
opsi pengkompilasi digunakan. Di bawah /J
, mereka diperlakukan sebagai jenis unsigned char
dan dipromosikan tanpa int
ekstensi tanda tangan.
Jenis unsigned char
ini sering digunakan untuk mewakili byte, yang bukan jenis bawaan di C++.
Jenisnya wchar_t
adalah jenis karakter lebar yang ditentukan implementasi. Dalam pengkompilasi Microsoft, ini mewakili karakter lebar 16-bit yang digunakan untuk menyimpan Unicode yang dikodekan sebagai UTF-16LE, jenis karakter asli pada sistem operasi Windows. Versi karakter yang luas dari fungsi pustaka Universal C Runtime (UCRT) menggunakan wchar_t
dan jenis pointer dan array-nya sebagai parameter dan mengembalikan nilai, seperti halnya versi karakter lebar dari WINDOWS API asli.
Jenis char8_t
, , char16_t
dan char32_t
mewakili masing-masing karakter lebar 8-bit, 16-bit, dan 32-bit. (char8_t
baru di C++20 dan memerlukan /std:c++20
opsi atau /std:c++latest
pengkompilasi.) Unicode yang dikodekan sebagai UTF-8 dapat disimpan dalam char8_t
jenis . String dan char8_t
char
jenis disebut sebagai string sempit , bahkan ketika digunakan untuk mengodekan karakter Unicode atau multi-byte. Unicode yang dikodekan sebagai UTF-16 dapat disimpan dalam jenis , dan Unicode yang dikodekan char16_t
sebagai UTF-32 dapat disimpan dalam char32_t
jenis . String dari jenis ini dan wchar_t
semuanya disebut sebagai string lebar , meskipun istilah sering merujuk khusus untuk string jenis wchar_t
.
Di pustaka standar C++, basic_string
jenisnya dikhususkan untuk string sempit dan lebar. Gunakan std::string
ketika karakter berjenis char
, std::u8string
ketika karakter berjenis char8_t
, std::u16string
ketika karakter berjenis char16_t
, std::u32string
ketika karakter berjenis char32_t
, dan std::wstring
ketika karakter berjenis wchar_t
.
Jenis lain yang mewakili teks, termasuk std::stringstream
dan std::cout
memiliki spesialisasi untuk string sempit dan lebar.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk