문자 리터럴(character literal)은 프로그래밍에서 소스 코드 내에 단일 문자의 값을 표현하기 위해 사용되는 리터럴의 한 종류입니다.
C++에서 문자 리터럴은 하나의 상수 문자로 구성되며, 작은따옴표(')로 감싼 문자 형태로 표현됩니다. C++에서는 다음과 같이 두 가지 종류의 문자 리터럴을 제공합니다.
- 좁은 문자(narrow-character) 리터럴 —
char타입, 예:'a' - 와이드 문자(wide-character) 리터럴 —
wchar_t타입, 예:L'a'
문자 리터럴에는 그래픽 문자라면 어떤 문자든 사용할 수 있습니다. 다만 줄바꿈('\n'), 백슬래시('\\'), 작은따옴표('), 큰따옴표(")처럼 특별한 의미를 가진 예약 문자(reserved characters)는 그대로 쓸 수 없으며, 반드시 이스케이프 시퀀스(escape sequence)를 통해 지정해야 합니다.
주요 이스케이프 시퀀스
\n— 줄바꿈(newline)\t— 수평 탭(tab)\b— 백스페이스(backspace)\\— 백슬래시(backslash)\'— 작은따옴표(single quotation mark)\"— 큰따옴표(double quotation mark)\0— 널(null) 문자
예제 코드
#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;
}
실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Newline character: ending Tab character: ending Backspace character: ending Backslash character: \ending Null character: ending
출력 결과에서 줄바꿈, 탭, 백스페이스, 널 문자는 화면에 눈에 보이는 형태로 나타나지 않는 제어 문자(control character)이기 때문에 해당 위치가 비어 있는 것처럼 보입니다. 반면 백슬래시는 이스케이프 시퀀스('\\')를 통해 실제 문자로 출력된 것을 확인할 수 있습니다.