반응형
문제
이번에는 큰따옴표(double quotation mark)가 포함된 출력문을 연습해보자. 다음 문장을 출력하시오.
"Hello World" (단, 큰따옴표도 함께 출력한다.)
풀이
펼치기
정답 코드:
#include <iostream>
int main()
{
std::cout << "\"Hello World\"" << std::endl;
return 0;
}
C++에서 문자열은 큰따옴표로 시작하고 큰따옴표로 끝난다.
"Hello World" 는 문자열 리터럴로 간주된다.
문자열 리터럴 내에서 큰따옴표를 사용하면, 컴파일러는 그 큰따옴표를 문자열의 끝으로 해석한다.
따라서 큰따옴표를 문자열 자체의 일부로 포함시키고자 할 때, 컴파일러가 이를 문자열의 끝으로 착각하지 않도록 해야 한다. 이 문제를 해결하기 위해 백슬래시('\')를 사용하여 큰따옴표를 이스케이프 처리한다. 이스케이프 시퀀스('\')는 큰따옴표가 문자열의 끝이 아니라 문자열의 일부임을 컴파일러에게 알려준다.
만약 다음과 같은 코드를 입력했다고 생각해 보자.
#include <iostream>
int main() {
std::cout << ""Hello World"" << std::endl; // 잘못된 예
return 0;
}
위 코드는 컴파일러에게 여러 개의 문자열로 해석된다
1) 첫 번째 큰따옴표로 시작하는 빈 문자열 ""
2) 두 번째 큰따옴표로 시작하는 또 다른 빈 문자열 ""
3) 세 번째 큰따옴표로 시작하는 또 다른 빈 문자열 ""
이로 인해 컴파일 에러가 발생하게 될 것이다.
문제 출처: 코드업
https://codeup.kr/problemsetsol.php?psid=23
반응형
'C++ 코딩 > C++ 코딩테스트' 카테고리의 다른 글
[C++ 기초 코딩 테스트 100] 9. 입출력 4 - 실수 둘째 자리까지 출력하기 (0) | 2024.07.25 |
---|---|
[C++ 기초 코딩 테스트 100] 8. 입출력 3 - 순서 바꿔 입출력 (1) | 2024.07.25 |
[C++ 기초 코딩 테스트 100] 7. 입출력 2 - 복수 입력 출력 (0) | 2024.07.25 |
[C++ 기초 코딩 테스트 100] 6. 입출력 - 정수, 문자, 실수 (1) | 2024.07.23 |
[C++ 기초 코딩 테스트 100] 5. 출력하기(5) (0) | 2024.07.23 |
[C++ 기초 코딩 테스트 100] 4. 출력하기(4) (2) | 2024.07.23 |
[C++ 기초 코딩 테스트 100] 2. 출력하기(2) (0) | 2024.07.23 |
[C++ 기초 코딩 테스트 100] 1. 출력하기 (0) | 2024.07.23 |