#005 특수문자 출력하기

Hyejin Kim·2023년 5월 2일
0

문제 설명
다음과 같이 출력하도록 코드를 작성해 주세요.

출력 예시

!@#$%^&*(\'"<>?:;

풀이

#include <stdio.h>

int main(void) {
    printf("!@#$%^&*(\\'\"<>?:;");
    return 0;
}

설명

C언어에서 특수문자를 출력하려면 이스케이프 시퀀스(Escape Sequence)를 사용해야 합니다. 이스케이프 시퀀스는 백슬래시()와 특정 문자를 조합하여 특수한 의미를 가지는 문자를 나타내는 것입니다.

아래는 자주 사용되는 몇 가지 특수문자의 이스케이프 시퀀스입니다.

  • 개행(newline) : \n
  • 탭(tab) : \t
  • 백스페이스(backspace) : \b
  • 캐리지 리턴(carriage return) : \r
  • 백슬래시 자체 출력 : \
  • 따옴표 출력: \', \"

예를 들어, "Hello, World!" 다음에 개행 문자를 출력하고 싶다면(줄바꿈) 아래와 같이 코드를 작성합니다.

printf("Hello, World!\n");

특수문자 이외의 문자를 출력할 때는 그대로 따옴표(")로 감싸서 출력합니다. 하지만 따옴표 자체를 출력하려면 백슬래시로 이스케이핑해야 합니다.

예를 들어, 따옴표를 출력하고 싶다면 아래와 같이 코드를 작성합니다.

printf("\"Hello, World!\"");

캐리지 리턴(Carriage Return)은 C언어에서 특수문자 중 하나로, 줄의 맨 앞으로 커서(cursor)를 이동시키는 것입니다. 이 때, 현재 위치에서의 커서의 위치를 0으로 설정하며, 이동 후에 다음 문자부터 출력됩니다.

예를 들어, 다음과 같은 코드를 실행하면, "Hello, World!"와 "Goodbye!"는 같은 줄에 출력되지만, 캐리지 리턴으로 인해 "Goodbye!"는 "Hello,"를 덮어쓰게 됩니다.

printf("Hello, World!\rGoodbye!");

출력 결과:

Goodbye!, World!

주의할 점은, 캐리지 리턴은 줄바꿈(Newline)과 다른 개념이라는 것입니다. 줄바꿈은 다음 줄로 이동시키는 것이지만, 캐리지 리턴은 현재 줄의 맨 앞으로 이동시킵니다. 따라서, 캐리지 리턴만으로는 새로운 줄을 만들지 않습니다.

출처: https://school.programmers.co.kr/learn/courses/30/lessons/181948

profile
Hello. I am a developer who is still developing.

0개의 댓글