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

C 언어 이스케이프 시퀀스 완벽 정리: 종류와 사용법

이스케이프 시퀀스란 무엇인가?

대부분의 프로그래밍 언어는 이스케이프 시퀀스(Escape Sequence)라는 개념을 지원합니다. 이스케이프 시퀀스란 문자 앞에 백슬래시(\)를 붙인 형태의 문자 조합으로, 컴파일러에게 일반 문자와는 다른 특별한 의미를 전달하는 역할을 합니다.

예를 들어 다음 코드의 \n은 유효한 문자로, 줄 바꿈(new line) 문자를 의미합니다.

char ch = '\n';

여기서 문자 n 앞에 백슬래시(\)가 붙어 있기 때문에 '새 줄로 이동하라'는 특수한 기능을 갖게 됩니다. 다만 백슬래시(\)가 모든 문자와 조합될 때 특별한 의미를 갖는 것은 아니라는 점에 유의해야 합니다. 정의되지 않은 문자와의 조합은 의도한 기능 없이 일반 문자로 해석되거나, 컴파일러에 따라 경고 또는 오류로 처리될 수 있습니다.

char ch = '\m';  // 정의되지 않은 조합

C 언어에서 사용할 수 있는 이스케이프 시퀀스

다음 표는 C 프로그래밍 언어에서 사용할 수 있는 대표적인 이스케이프 시퀀스를 정리한 것입니다.

번호이스케이프 시퀀스 및 설명
1\t
텍스트의 해당 위치에 탭(tab) 공백을 삽입합니다.
2\b
텍스트의 해당 위치에 백스페이스(backspace)를 삽입합니다.
3\n
텍스트의 해당 위치에 줄 바꿈(newline)을 삽입합니다.
4\r
텍스트의 해당 위치에 캐리지 리턴(carriage return)을 삽입합니다.
5\f
텍스트의 해당 위치에 폼 피드(form feed)를 삽입합니다.
6\a
알림(alert) 신호, 즉 벨 소리를 발생시킵니다.
7\v
텍스트의 해당 위치에 수직 탭(vertical tab)을 삽입합니다.
8\'
텍스트의 해당 위치에 작은따옴표(') 문자를 삽입합니다.
9\"
텍스트의 해당 위치에 큰따옴표(") 문자를 삽입합니다.
10\\
텍스트의 해당 위치에 백슬래시(\) 문자 자체를 삽입합니다.
11\0
널(null) 문자를 나타내며, 문자열의 끝을 표시하는 데 사용됩니다.
12\?
물음표(?) 문자를 출력합니다.

왜 이스케이프 시퀀스가 필요한가?

문자열은 큰따옴표(")로 감싸서 표현하기 때문에, 문자열 안에 큰따옴표를 그대로 넣으면 문자열의 시작과 끝을 컴파일러가 구분하지 못하게 됩니다. 이때 \"와 같은 이스케이프 시퀀스를 사용하면 문자열 내부에 특수 문자를 안전하게 포함할 수 있습니다.

printf("그는 \"안녕하세요\"라고 인사했습니다.");

활용 예제

다음은 탭(\t)과 줄 바꿈(\n) 이스케이프 시퀀스를 변수에 저장한 후 printf() 함수로 출력하는 예제입니다.

#include <stdio.h>

int main() {
    char ch1;
    char ch2;
    char ch3;
    char ch4;

    ch1 = '\t';
    ch2 = '\n';

    printf("탭 공백 테스트 %c 그리고 줄 바꿈 %c여기서 시작합니다", ch1, ch2);

    return 0;
}

실행 결과

탭 공백 테스트     그리고 줄 바꿈
여기서 시작합니다

출력 결과에서 볼 수 있듯이 %c 형식 지정자를 통해 저장된 이스케이프 문자가 그대로 적용되어, 탭 공백이 삽입되고 줄 바꿈이 발생한 것을 확인할 수 있습니다.

마무리

이스케이프 시퀀스는 화면 출력 형식을 제어하고 특수 문자를 안전하게 표현하는 데 필수적인 요소입니다. \n, \t, \\ 같은 자주 사용되는 시퀀스부터 \0처럼 문자열 처리의 핵심이 되는 문자까지 정확히 이해해 두면 C 언어 프로그래밍 실력을 한 단계 끌어올릴 수 있습니다.