Character literal** là hằng số biểu diễn giá trị của một ký tự đơn trong mã nguồn.
Trong C++, character literal bao gồm một ký tự hằng, được bao quanh bởi dấu nháy đơn. Có 2 loại:
- Narrow-character literal kiểu
char: ví dụ'a' - Wide-character literal kiểu
wchar_t: ví dụL'a'
Ký tự dùng cho literal có thể là bất kỳ ký tự in được nào, trừ các ký tự dành riêng: newline ('\n'), backslash ('\\'), dấu nháy đơn ('\''), dấu nháy kép ('\"'). Các ký tự dành riêng phải dùng escape sequence.
Các escape sequence phổ biến
| Escape sequence | Ý nghĩa |
|---|---|
\n |
Newline (xuống dòng) |
\t |
Tab ngang |
\b |
Backspace |
\\ |
Backslash (\\) |
\' |
Dấu nháy đơn (') |
\" |
Dấu nháy kép (") |
\0 |
Null character |
\xHH |
Hex (HH là 2 chữ số hex) |
\uXXXX |
Unicode 16-bit (C++11) |
\UXXXXXXXX |
Unicode 32-bit (C++11) |
Ví dụ
#include <iostream>
using namespace std;
int main() {
char newline = '\n';
char tab = '\t';
char backspace = '\b';
char backslash = '\\';
char nullChar = '\0';
cout << "Newline character: " << newline << "ending" << endl;
cout << "Tab character: " << tab << "ending" << endl;
cout << "Backspace character: " << backspace << "ending" << endl;
cout << "Backslash character: " << backslash << "ending" << endl;
cout << "Null character: " << nullChar << "ending" << endl;
}
Kết quả
Newline character:
ending
Tab character: ending
Backspace character: ending
Backslash character: \ending
Null character: ending
Lưu ý: Ký tự wide dùng tiền tố L (VD: L'中'), C++11 thêm u8 (UTF-8), u (UTF-16), U (UTF-32).