큰 따옴표와 작은 따옴표의 차이
따옴표 차이
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 exampleu8'a'
-
Wide-character literals of type
wchar_t
, for exampleL'a'
-
UTF-16 character literals of type
char16_t
, for exampleu'a'
-
UTF-32 character literals of type
char32_t
, for exampleU'a'
문자 리터럴에 사용되는 문자는 예약된 문자 백슬래시(), 작은따옴표’() 또는 줄 바꿈을 제외한 모든 문자일 수 있습니다. 예약된 문자는 이스케이프 시퀀스를 사용하여 지정할 수 있습니다. 문자는 형식이 문자를 저장할 수 있을 만큼 큰 경우 유니버설 문자 이름을 사용하여 지정할 수 있습니다.
즉, 'a'
는 가능하지만 ' a '
처럼 공백이 들어가있는건 문자 리터럴이 아닌 문자열 리터럴입니다.
문자열 리터럴을 사용할려면 " "
큰 따옴표를 사용하여 출력해야 합니다.
또한 공백문자 리터럴
이 작은 따옴표 사이에 두 개 이상들어가면 에러가 발생합니다.
공백문자 리터럴
이 두 개 이상들어가면 문자열 리터럴
로 처리를 합니다.
디테일
백준 온라인 문제를 풀다가 공백 문제 때문에 생각보다 파악하기 힘든 오류가 생겼다.
출력형식이 올바르지 않다고 하거나 틀렸다고 하는 부분을 보면 대부분 공백을 출력하는 문제였다.
신경써서 작성해야 한다.