문자열 상수 — 큰따옴표·널 문자와 printf의 %s 출력 | 기초 C언어 3.4.2

기초 C언어Chapter 03 상수 › Section 04 문자

3.4.2 문자열

큰따옴표로 문자열을 적고, 문자 배열 끝의 널 종료 문자가 하는 일을 살펴봄. printf의 %s로 문자열을 출력한 뒤 문자 상수와 문자열 상수의 차이를 구별함.

교재 수록 위치
교재
『기초 C언어』 · 2026년 개정판 · 364쪽
단원
Chapter 03 상수 › Section 04 문자
쪽수
56p ~ 58p3쪽
세부 내용
02 문자열 — 1 문자열이란? 56p · 2 큰따옴표의 사용 56p · 3 문자 배열과 널 문자 56p~57p · 4 문자열 출력 57p · 5 문자와 문자열의 차이 58p

01문자열 상수 — 글자들을 순서대로 나열교재 56p

  • 문자열(String)"Hello", "C Language"처럼 문자들을 차례로 나열한 것. 단어뿐 아니라 공백과 기호도 문자열의 일부가 될 수 있음.
  • 문자열 상수 — 문자열을 코드에 직접 적은 표현. 이 절에서는 교재의 Hello, World!와 Cat을 통해 표기와 저장 모양을 살펴봄.
  • 한 글자도 문자열"A"는 내용이 한 글자여도 문자열 상수. 글자 수만으로 문자와 문자열을 구분하지 않음.

02큰따옴표 — 작은따옴표와 역할 구별교재 56p

  • 문자열의 표기 규칙 — 문자열 상수는 큰따옴표로 감쌈. printf에 표시할 문장을 적을 때 보았던 형태와 같음.
  • 문자 상수와 비교'A'는 문자 상수, "A"는 문자열 상수. 비슷한 모습이어도 저장 형태와 출력에 사용할 변환 지정자가 다름.
  • 따옴표까지 읽기 — 화면에 A가 보인다는 결과만으로 원래 값이 문자였는지 문자열이었는지 판단할 수 없음. 코드의 따옴표와 변환 지정자를 확인.
표현종류출력에 쓰는 지정자
"Hello, World!"문자열 상수%s
"A"문자열 상수%s
'A'문자 상수%c

한 칸의 글자와 글자를 담은 줄

  • 문자를 글자 하나로, 문자열을 글자가 순서대로 놓이는 줄로 생각할 수 있음. 그 줄에는 한 글자만 놓일 수도 있음.
  • 큰따옴표를 보는 순간 글자들의 나열과 끝 표시를 함께 떠올리는 것이 핵심. 다음 단계에서 그 끝 표시가 어떤 값인지 확인.

03문자의 배열 — Cat이 놓이는 네 칸교재 56p

  • C언어의 문자열 표현 — 별도의 기본 문자열 자료형 대신 문자 배열로 문자열을 다룸. 배열에 관한 자세한 내용은 8장에서 배우고, 지금은 문자가 연속해서 놓인다는 모습을 이해.
  • "Cat"의 저장 — C, a, t가 차례로 놓이고 맨 뒤에 널 문자 한 칸이 추가됨. 화면에 보이는 세 글자와 메모리에 필요한 네 칸을 구별.
  • 문자 코드와 연결 — ASCII 기준으로 C는 67, a는 97, t는 116. 마지막 널 문자의 값은 0.
위치첫째 칸둘째 칸셋째 칸넷째 칸
저장 문자'C''a''t''\0'
ASCII 기준 값67971160
  • 교재 그림의 1000, 1001 같은 주소는 연속된 칸을 설명하기 위한 예시. 실행할 때마다 반드시 그 주소에 문자열이 놓인다는 뜻은 아님.

04널 종료 문자 — 문자열의 끝을 알리기교재 57p

  • 널 종료 문자\0은 문자열이 끝났음을 나타내는 값 0인 문자. 눈에 보이는 숫자 문자 '0'과 다름.
  • %s의 기본 동작 — 문자열의 문자를 순서대로 읽다가 널 문자를 만나면 출력이 끝남. 널 문자 자체는 글자처럼 보이지 않음.
  • 끝 표시가 빠지면 — 배열 범위를 넘어 읽는 등 정의되지 않은 동작이 생길 수 있음. 이상한 값이 출력되거나 프로그램이 종료될 수 있어 결과를 보장할 수 없음.
  • 필요한 공간 — Cat처럼 각 글자가 1바이트인 예에서는 글자 3개와 널 문자 1개를 합쳐 4바이트 필요. 한글처럼 여러 바이트로 인코딩되는 문자는 글자 수와 바이트 수가 다를 수 있음.

글의 마침표처럼 끝을 알려 주는 표시

  • 널 문자는 함수가 어디서 멈춰야 하는지 알려 주는 끝 표시. 화면에 출력할 글자는 아니지만, 문자열을 올바르게 다루는 데 필요한 한 칸.
  • 공간을 셀 때는 보이는 글자들만 세지 말고 끝 표시 한 칸을 더함. 다만 배열을 더 크게 선언했다면 그 배열 전체 크기는 최소 필요 공간보다 클 수 있음.

05문자열 출력 — printf의 %s 사용교재 57p

CODE 3.6 · 문자열 출력 예시
  1. #include <stdio.h>
  2. int main(void) {
  3. printf("가장 대표적인 문자열: %s\n", "Hello, World!");
  4. return 0;
  5. }
실행 결과
  1. 가장 대표적인 문자열: Hello, World!
  • 03줄의 %s — 뒤에 전달한 문자열 Hello, World!를 출력할 위치. 하나의 문자열이 그 자리에 이어서 표시됨.
  • 줄 바꿈 — 형식 문자열 끝의 \n이 출력 뒤 줄을 바꿈. 문자열의 끝을 나타내는 \0과 역할이 다름.
  • 보이는 길이와 저장 공간 — Hello, World!는 공백과 쉼표, 느낌표를 포함해 13글자. 이 예의 문자열 리터럴은 널 문자까지 포함한 char 14칸으로 구성됨.

06문자와 문자열 — A 한 글자도 다르게 저장교재 58p

구분'A'"A"
의미보통의 문자 상수문자열 상수
자료 형태int형 정수 값char 2칸의 배열
내용ASCII 호환 환경에서 65'A'와 '\0'
크기sizeof(int), 환경에 따라 다름2바이트
기본 출력 지정자%c%s
  • 교재 표의 크기 구분 — 1바이트라는 설명은 문자 값을 담는 char 한 칸에 해당. C의 문자 상수 'A' 자체는 int형이므로 그 크기와는 구별해야 함.
  • 문자열과 주소 — 문자열 배열은 대부분의 식에서 첫 번째 원소를 가리키는 포인터로 변환됨. 교재가 문자열의 값으로 주소를 소개하는 맥락이며, 자세한 내용은 10장에서 학습.
  • 지금 기억할 것 — 작은따옴표는 문자 값, 큰따옴표는 널 문자를 포함하는 문자열. 출력 결과보다 코드의 표현과 저장 구조를 먼저 구별.

이 절의 핵심 정리

  1. 문자열 상수는 문자들을 큰따옴표로 감싼 표현이다.
  2. C의 문자열은 문자 배열과 널 종료 문자로 이해한다.
  3. \0은 값 0인 끝 표시이며 문자 '0'과 다르다.
  4. printf의 %s는 문자열을 출력한다.
  5. 'A'와 "A"는 자료형·저장 형태·출력 지정자가 다르다.
강의 자료3.4.2 문자열 1 / 10

번호를 누르면 해당 장으로 바로 이동합니다 · 방향키 ← → 로도 넘길 수 있습니다
다음 절 · 4.1.1 변수의 개념과 구조 교재 80p~83p — 변수의 개념과 구조를 살펴봅니다.

더 자세한 내용은 교재에서

이 글은 『기초 C언어』 56p~58p의 내용을 강의 영상에 맞춰 핵심만 간추린 요약입니다. 각 개념의 상세한 설명과 예제, 실습 코드, 임용시험 기출문제 풀이는 교재에서 다루고 있습니다.

댓글

이 블로그의 인기 게시물

2007년 국가직 9급 기계일반 기출문제 풀이

2008년 국가직 9급 기계일반 기출문제 풀이

열역학의 개요 — 계·상태량·열과 일, 제1·제2법칙 | 기초 열역학 1.1