코딩일기

[ C ] printf 함수의 %c와 %s

jhy_2023 2026. 5. 29. 14:32
728x90
반응형

C언어를 학습할 때 가장 먼저 접하게 되는 출력 함수가 printf() 함수이다.
이때 자주 사용되는 서식 지정자가 %c%s이다.

두 서식 지정자는 모두 문자를 출력한다는 공통점이 있지만,
실제로는 출력 대상과 메모리 구조가 완전히 다르다.

이 차이를 이해하려면 먼저 문자와 문자열의 개념을 알아야 한다.


1️⃣ 문자(Character)

char ch = 'A';

문자(Character)는 하나의 글자를 의미한다.
C언어에서는 문자를 저장할 때 char 자료형을 사용한다.

🔷 특징

1. 문자 1개만 저장 가능

char ch = 'A';

char 변수는 오직 문자 하나만 저장할 수 있다.

2. 작은따옴표 사용

문자는 반드시 작은따옴표 ' ' 로 표현한다.

3. 내부적으로 ASCII 코드 저장

문자	ASCII 코드
A	65
B	66
a	97
char ch = 'A';

문자는 실제로 메모리에 숫자로 저장된다. 즉 위 코드는 실제로는 숫자 65가 저장된다.

반응형

🔷 %c 

%c는 character의 약자이다. 즉 문자 1개를 출력할 때 사용하는 서식 지정자이다.

#include <stdio.h>

int main() {

    char ch = 'K';

    printf("%c", ch);

    return 0;
}
실행 결과
K
728x90

2️⃣ 문자열(String)

"KOREA" 
"C언어"

문자열(String)은 여러 문자가 연결된 형태이다.
문자열은 문자 여러 개의 집합이라고 볼 수 있다.

🔷 특징

1. 문자열은 char 배열로 저장

char str[] = "HELLO";

C언어에는 문자열 전용 자료형(string)이 존재하지 않는다.
따라서 문자열은 char 배열로 저장한다.

2. 자열의 마지막에는 자동으로 널 문자(\0) 저장

char str[] = "HELLO";

인덱스	값
str[0]	H
str[1]	E
str[2]	L
str[3]	L
str[4]	O
str[5]	\0

메모리는 위와 같이 저장된다.
문자열의 마지막에는 자동으로 \0이 저장된다.
이를 널 문자(null character)라고 한다.
이 문자를 통해 컴퓨터는 문자열의 끝을 판단한다.

🔷 %s

%s는 string의 약자이다. 즉 문자열 전체를 출력할 때 사용하는 서식 지정자이다.

#include <stdio.h>

int main() {

    char str[] = "HELLO";

    printf("%s", str);

    return 0;
}
실행 결과
HELLO

"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90
반응형