Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ 문자 상수란? 개념부터 종류와 예제까지 한눈에 정리

문자 상수(character constant)는 프로그램 소스 코드를 작성할 때 사용하는 문자 집합인 소스 문자 집합(source character set)에 속한 하나 이상의 문자를 작은따옴표(')로 묶어 표현한 것입니다. 문자 상수는 프로그램이 실제로 실행되는 환경의 문자 집합인 실행 문자 집합(execution character set)의 문자를 나타내는 데 사용되며, 흔히 문자 리터럴(character literal)이라고도 부릅니다.

C++에서의 문자 리터럴

C++에서 문자 리터럴은 하나의 상수 문자로 구성되며, 작은따옴표로 감싼 문자의 형태로 표현됩니다. C++의 문자 리터럴은 크게 두 가지 종류로 나눌 수 있습니다.

  • 좁은 문자 리터럴(narrow-character literal) : char 타입, 예시 — 'a'
  • 와이드 문자 리터럴(wide-character literal) : wchar_t 타입, 예시 — L'a'

이스케이프 시퀀스가 필요한 특수 문자

문자 리터럴에는 대부분의 그래픽 문자를 자유롭게 사용할 수 있지만, 줄바꿈('\n'), 백슬래시('\'), 작은따옴표('), 큰따옴표(")처럼 언어 문법상 특별한 의미를 지니는 예약 문자(reserved characters)는 그대로 쓸 수 없습니다. 이런 문자들은 반드시 이스케이프 시퀀스(escape sequence)를 이용해 지정해야 합니다.

예제 코드

다음 예제는 대표적인 이스케이프 문자들을 char 변수에 저장하고 출력하는 코드입니다.

#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

출력 결과를 살펴보면 줄바꿈(\n), 탭(\t), 백스페이스(\b), 널 문자(\0)는 눈에 보이는 글자가 아니라 커서 위치나 출력 흐름에 영향을 주기 때문에 화면에 그대로 드러나지 않습니다. 반면 백슬래시(\\)는 실행 문자 집합에서 '\'로 변환되어 화면에 그대로 표시되는 것을 확인할 수 있습니다. 이처럼 문자 상수와 이스케이프 시퀀스를 올바르게 이해하면 특수 문자를 안전하고 정확하게 다룰 수 있습니다.