리메이크 중/C,C++ 실습 중심

C(&C++) 실습 2. 고양이 그리기 (이스케이프 시퀀스)

라이피 (Lypi) 2021. 6. 1. 22:00
반응형


문제 출처

PLU 2014 - Novice 2번

backjoon 10171번 문제


0. 문제

ⅰ. 아래 예제와 같이 (고양이를) 출력하시오.

■ 웹 환경에서도 그러하듯이 \(=\), 즉 역슬래시를 화면상에 표현하는게 문제의 핵심이다.

■ 이미지가 아닌 문자로 표시하면 대애충 아래와 같다.

\    /\
 )  ( ')
(  /  )
 \(__)|

■ 티스토리의 기본 폰트는 역슬래시를 '\'로 표현하는 문제가 있다.


1. 코드

ⅰ. puts를 이용한 방법

#include <iostream>

int main()
{
puts("\\    /\\");
puts(" )  ( ')");
puts("(  /  )");
puts(" \\(__)|");
    return 0;
}

■ 이 코드는 가독성에 가장 중점을 둔 코드이다.

■ 같은 puts함수를 이용하더라도 아래와 같이 한줄로 적을 수도 있다.

#include <stdio.h>

int main()
{
    puts("\\    /\\\n )  ( ')\n(  /  )\n \\(__)|");

    return 0;
}

2. 알아야 하는 것.

ⅰ. 이스케이프 시퀀스 (escape sequence)

■ C언어에서 이스케이프 시퀀스는 프로그래밍 언어의 특성상 하나의 문자로 표현하기 힘든 문자를 나타낸다.

■ 예를 들어 큰따옴표 하나를 화면상에 나타내기 위해서 """라고 쓴다면 문법 오류가 날 가능성이 높다.

■ C 및 C++에서 문자열은 "로 시작해서 "로 끝나는 것이기 때문이다.

■ 즉, """라고 쓴다면 두번째 "에서 문자열은 끝나버릴 것이고, 세번째 "다시 문자열을 시작하게 될 것이다.

■ 그렇기 때문에 "는 C언어 상에서 일반적인 방법으로는 하나의 문자로 나타내기 힘든 문자가 된다.

■ C, C++의 이스케이프 시퀀스는 모두 \(역슬래시)로 시작한다.


반응형