그냥저냥

문제풀이 | The C Programming Language (K&R): Exercise 1-2 본문

개발기/The C Programming Language

문제풀이 | The C Programming Language (K&R): Exercise 1-2

sync86 2026. 4. 28. 02:54
728x90
반응형

책: 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" 문제 풀어보겠습니다.

728x90
반응형