이 글에서는 서식 지정자(format specifier)를 일절 사용하지 않고 문자를 출력하는 방법을 살펴보겠습니다. C 언어의 서식 지정자에는 %d, %f, %c 등이 있으며, 보통 printf() 함수와 함께 사용되어 문자나 숫자를 화면에 출력합니다.
그렇다면 %c 없이도 문자를 출력할 수 있을까요? 답은 가능입니다. 핵심 아이디어는 문자의 ASCII 값을 16진수 형태로 문자열 안에 직접 삽입하는 것입니다. C 언어에서는 문자열 리터럴 내에서 \x 뒤에 16진수 값을 붙이면 해당 ASCII 코드에 대응하는 문자로 해석되기 때문입니다.
예제 코드
#include <stdio.h>
main () {
printf("\x41 \n"); // 0x41은 문자 'A'의 ASCII 코드(16진수)
printf("\x52 \n"); // 0x52는 문자 'R'의 ASCII 코드(16진수)
printf("\x69 \n"); // 0x69는 문자 'i'의 ASCII 코드(16진수)
}
실행 결과
A
R
i
위 코드에서 \x41, \x52, \x69는 각각 16진수 값 0x41('A'), 0x52('R'), 0x69('i')에 해당하며, 컴파일러가 이를 해당 문자로 변환하여 출력합니다. 이처럼 서식 지정자를 사용하지 않고도 원하는 문자를 손쉽게 출력할 수 있습니다.