제어문자 (이스케이프 시퀀스)

정의

  • 제어문자(Control Characters) 또는 이스케이프 시퀀스(Escape Sequences)
  • 눈에 보이는 문자를 출력하는 게 아니라, 출력 위치를 제어하거나(커서 이동), 특별한 동작(경고음 등)을 수행하는 문자의 총칭
  • 앞선 글에서 잠깐 스쳐간 백색 문자(white space) 또한 이 제어문자의 한 종류이다.
  • \\ 를 이스케이프 문자라고 한다.

종류

제어 문자 명칭 역할/설명
' ' 공백 단일 공백을 삽입한다.
'\t' 수평 탭(Horizontal Tab)을 삽입한다.
'\v' 수직 탭 수직 탭(Vertical Tab)을 삽입한다.
'\n' 개행 새 줄(New Line)로 이동한다.
'\r' 캐리지 리턴 현재 줄의 맨 앞으로 커서(출력 위치)를 이동한다.
'\f' 폼 피드 새 페이지(Form Feed)로 이동한다.
'\0' 널 문자 문자열의 끝을 나타내는 데 사용되며, 출력 시 아무것도 표시되지 않는다.
'\b' 백스페이스 커서를 한 칸 뒤로 이동시켜 이전 문자를 덮어쓰거나 지우는 데 사용된다.
'\a' 알람 audible/visual alarm(경고음)을 발생시킨다.

사용해보기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
char space = ' ';
printf("%s * 4번: '%c' '%c' '%c' '%c' <end>\n", "space", space, space, space, space);

char tab = '\t';
printf("%s * 4번: '%c' '%c' '%c' '%c' <end>\n", "tab", tab, tab, tab, tab);

char vertical_tab = '\v';
printf("%s * 4번: '%c' '%c' '%c' '%c' <end>\n", "vertical_tab", vertical_tab, vertical_tab, vertical_tab, vertical_tab);

char new_line = '\n';
printf("%s : '%c' <end>\n", "new_line", new_line);
  
char carriage_return = '\r';
printf("%s : '%c' <end>\n", "carriage_return", carriage_return);
  
char form_feed = '\f';
printf("%s : '%c' <end>\n", "form_feed", form_feed);
  
char alarm = '\a';
// 문자열에 직접 넣거나, putchar, fflush 등으로 알람 소리를 출력할 수 있다.
printf("%s : '%c' <end>\n", "alarm", alarm);
putchar('\a');
fflush(stdout);

char null = '\0';
printf("%s : '%c' <end>\n", "null", null);
  
char back_space = '\b';
printf("%s : '%c' <end>\n", "back_space", back_space);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# 출력 : \s
space * 4번: ' ' ' ' ' ' ' ' <end>

# 출력 : \t
tab * 4번: ' ' ' ' ' ' ' ' <end>

# 출력 : \v
vertical_tab * 4번: '
                     ' '
                        ' '
                           ' '
                              ' <end>

# 출력 : \n                    
new_line : '
' <end>

# 출력 : \r
' <end>e_return : '

# 출력 : \f
form_feed : '
             ' <end>

# 출력 : \a
alarm : '' <end>

# 출력 : \0
null : '' <end>

# 출력 : \b
back_space : ' <end>

이스케이프 문자를 직접 문자로 출력하기

  • 이스케이프 문자는 다른 문자와 결합하여 특정 기능이 작동하게끔 하는 역할을 한다.
  • 만약 이스케이프 문자를 문자로 직접 표현하고 싶다면, 연속으로 두 번 작성하면 된다.
1
2
3
void expression_escape_char_word() {
	printf("escape 문자를 직접 문자로 출력할 때에는\n");
	printf("escape 문자를 연속으로 두 번 사용한다. \\");
1
2
3
# 출력
escape 문자를 직접 문자로 출력할 때에는
escape 문자를 연속으로 두 번 사용한다. \

Reference

C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)

Comments