| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 에러
- 개발
- 일상
- 연습문제
- VM
- 오토바이
- 휘발류
- 티스토리챌린지
- 퇴근길
- 오블완
- ubuntu
- 템플릿
- VMware
- 가상머신
- node.js
- 객체지향프로그래밍
- K&R
- 주유소
- 인프라
- DART
- Bloc
- Linux
- 리눅스
- C언어
- podman
- Flutter
- FreeBSD
- 잡담
- 개발기
- virtualmachine
- Today
- Total
그냥저냥
문제풀이 | The C Programming Language (K&R): Exercise 1-2 본문
문제풀이 | The C Programming Language (K&R): Exercise 1-2
sync86 2026. 4. 28. 02:54
책: The C Programming Language (K&R)
본문의 연습문제는 저작권 이슈로 그 내용을 직접적으로 언급하지 않습니다. 이점 양해 바랍니다.
Escape Character는 보이지는 않지만, 터미널 (콘솔)화면에서 각 특수한 기능을 가지고 있는 문자를 뜻합니다.
이번 문제는 Escape Character를 입력해서 어떤 결과가 나오는지 확인하라는 문제인 것 같습니다.
Escape Character는 ""(쌍따옴표) 안에 포함되며, \(역슬래쉬)로 시작합니다.
이후 이 문자로 시작한 다음 문자를 보고 그 기능을 결정하게 됩니다.
그래서 보기엔 2개의 문자지만, 단일 문자로 인식하게 됩니다.
책에서 언급하고 있는 Escape Character는 아래의 표와 같습니다.
| Escape Character | 설명 |
| \n | 줄바꿈 |
| \t | 탭 |
| \b | 백스페이스 |
| \" | "(쌍따옴표) 문자를 출력 |
| \\ | \(역슬래쉬) 문자를 출력 |
\n - 줄바꿈
#include <stdio.h>
int main(int argc, char** argv)
{
printf("hello,\n world\n");
return 0;
}
"hello, word" 예제에서 ,(콤마) 다음에 \n Escape Character 문자로 수정하였습니다.
결과는 아래와 같습니다.
$ ./a.out
hello,
world
\t - 탭
#include <stdio.h>
int main(int argc, char** argv)
{
printf("hello,\t world\n");
return 0;
}
"hello, word" 예제에서 ,(콤마) 다음에 \t Escape Character 문자로 수정하였습니다.
결과는 아래와 같습니다.
$ ./a.out
hello, world
\b - 백스페이스
#include <stdio.h>
int main(int argc, char** argv)
{
printf("hello,\b world\n");
return 0;
}
"hello, word" 예제에서 ,(콤마) 다음에 \b Escape Character 문자로 수정하였습니다.
결과는 아래와 같습니다.
$ ./a.out
hello world
\" - "(쌍따옴표) 문자를 출력
#include <stdio.h>
int main(int argc, char** argv)
{
printf("hello,\" world\n");
return 0;
}
"hello, word" 예제에서 ,(콤마) 다음에 \" (쌍따옴표)을 Escape Character 문자로 수정하였습니다.
결과는 아래와 같습니다.
$ ./a.out
hello," world
\\ - \(역슬래쉬) 문자를 출력
#include <stdio.h>
int main(int argc, char** argv)
{
printf("hello,\\ world\n");
return 0;
}
"hello, word" 예제에서 ,(콤마) 다음에 \\ (쌍따옴표)을 Escape Character 문자로 수정하였습니다.
결과는 아래와 같습니다.
$ ./a.out
hello,\ world
Exercise 1-2는 임의의 문자를 넣어서 테스트 해보라는 의미인 것 같습니다.
임의의 문자를 다 해보는 것은 의미가 없을 것 같습니다.
#include <stdio.h>
int main(int argc, char** argv)
{
printf("hello,\c world\n");
return 0;
}
Escape Character을 변경하고 실행했을 때 결과는 아래와 같습니다.
$ ./a.out
hello,c world
제공되지 않는 문자는 위 처럼 "정의되지 않은 동작(Undefined Behavior)"으로 해당 문자를 그대로 출력합니다.
따라서 컴파일할 때 아래와 같은 경고 메시지를 볼 수 있습니다.
$ cc exercise1-2.c
exercise1-2.c:5:17: warning: unknown escape sequence '\c' [-Wunknown-escape-sequence]
5 | printf("hello,\c world\n");
| ^~
1 warning generated.
참고: 위 결과는 clang으로 컴파일 했을 때 발생한 경고 메시지입니다.
마무리
이것저것 Escape Character에 랜덤하게 문자를 넣어보고 실험해보면 될 것 같네요.
다음은 "The C Programming Language: Exercise 1-3" 문제 풀어보겠습니다.
'개발기 > The C Programming Language' 카테고리의 다른 글
| 문제풀이 | The C Programming Language (K&R): Exercise 1-6 (0) | 2026.05.23 |
|---|---|
| 문제풀이 | The C Programming Language (K&R): Exercise 1-5 (0) | 2026.05.04 |
| 문제풀이 | The C Programming Language (K&R): Exercise 1-4 (0) | 2026.05.04 |
| 문제풀이 | The C Programming Language (K&R): Exercise 1-3 (0) | 2026.04.28 |
| 문제풀이 | The C Programming Language (K&R): Exercise 1-1 (0) | 2026.04.25 |