따옴표 차이

C언어에서는 파이썬과 다르게 문자를 표현할 때
큰 따옴표와 작은 따옴표에 차이를 둔다.

print('a')

print("a")

print('apple')

print("apple")

print('I like apple')

print("I like apple")
# output
a
a
apple
apple
I like apple
I like apple

위와 같이 파이썬에선 문자와 문자열 모두에
큰 따옴표와 작은 따옴표를 구분두지 않는다.

#include <iostream>
int main(){
    std::cout << 'a' << std::endl;
    std::cout << "apple" << std::endl;
    std::cout << "I like apple" << std:endl;
}

C++에서 작은 따옴표는 char형을 출력한다.


문자 리터럴

문자 리터럴 은 상수 문자로 구성됩니다. 작은따옴표로 둘러싸인 문자로 표시됩니다.
문자 리터럴에는 5가지 종류가 있습니다.

  • Ordinary character literals of type char, for example 'a'

  • UTF-8 character literals of type char (char8_t in C++20), for example u8'a'

  • Wide-character literals of type wchar_t, for example L'a'

  • UTF-16 character literals of type char16_t, for example u'a'

  • UTF-32 character literals of type char32_t, for example U'a'

문자 리터럴에 사용되는 문자는 예약된 문자 백슬래시(), 작은따옴표’() 또는 줄 바꿈을 제외한 모든 문자일 수 있습니다. 예약된 문자는 이스케이프 시퀀스를 사용하여 지정할 수 있습니다. 문자는 형식이 문자를 저장할 수 있을 만큼 큰 경우 유니버설 문자 이름을 사용하여 지정할 수 있습니다.

즉, 'a'는 가능하지만 ' a ' 처럼 공백이 들어가있는건 문자 리터럴이 아닌 문자열 리터럴입니다.
문자열 리터럴을 사용할려면 " " 큰 따옴표를 사용하여 출력해야 합니다.

또한 공백문자 리터럴이 작은 따옴표 사이에 두 개 이상들어가면 에러가 발생합니다.
공백문자 리터럴이 두 개 이상들어가면 문자열 리터럴로 처리를 합니다.



디테일

백준 온라인 문제를 풀다가 공백 문제 때문에 생각보다 파악하기 힘든 오류가 생겼다.
출력형식이 올바르지 않다고 하거나 틀렸다고 하는 부분을 보면 대부분 공백을 출력하는 문제였다.
신경써서 작성해야 한다.

카테고리:

업데이트: