-
C++] 특수 문자 출력하기, Raw 문자열Algorithm 2024. 11. 22. 10:48반응형
프로그래머스 문제 : https://school.programmers.co.kr/learn/courses/30/lessons/181948
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
제출한 답
#include <iostream> using namespace std; int main(void) { cout << "!@#$%^&*(\\'\"<>?:;"; return 0; }
자세한 풀이
특수 문자 '(작은 따옴표)와 "(큰 따옴표)를 출력할 때 문법적 혼란 때문에 오류가 발생한다.
따라서 앞에 \ (백슬래쉬)를 넣어주어야 한다.
\' \"
이러한 형태를 '이스케이프 시퀀스'라고 부른다.
추가 내용
'Raw 문자열'을 이용해서 또다른 방식으로 풀이가 가능하다.
#include <iostream> using namespace std; int main(void) { cout << R"(!@#$%^&*(\'"<>?:;)"; }
Raw 문자열은 C++11에서 도입된 기능으로, 문자열 안에 이스케이프 시퀀스를 사용하지 않고도 특수 문자나 복잡한 형식의 문자열을 그대로 사용할 수 있도록 해준다. (파일 경로 다룰 때 유용)
R"(문자열 내용)"
R은 Raw 문자열을 나타내고 () 괄호 안에 있는 내용은 그대로 출력되며, 이스케이프 시퀀스가 해석되지 않는다.
줄바꿈도 그대로 포함돼서 \n 없이 표현 가능하다.
Raw 문자열 안에 ) 괄호를 포함해야 한다면, 구분자를 추가해서 출력해야 한다.
R"구분자(문자열 내용)구분자"
예시 구분자:custom
#include <iostream> int main() { std::cout << R"custom(This string contains a ) character.)custom" << std::endl; return 0; }
결과
This string contains a ) character.
여기서 구분자는 알파벳, 숫자, _밑줄만 사용할 수 있으며, 커스텀 가능하다.
기능 일반 문자열 Raw 문자열 이스케이프 시퀀스 필요 필요 (\n, \", etc.) 필요 없음 (\, ", 그대로 사용 가능) 여러 줄 지원 지원 (줄마다 \n 필요) 지원 (줄 바꿈 그대로 표현 가능) 특수 문자 포함 백슬래시(\)로 이스케이프 필요 그대로 포함 가능 복잡한 형식 표현 JSON, 파일 경로, 정규표현식 작성이 어려움 작성이 훨씬 간편 더보기더보기참고한 자료
Chat GPT
https://todamfather.tistory.com/85
C++ 기초(Raw String Literal)
이번 포스팅에서는 조금은 생소하지만 스트링을 사용함에 있어서 편리함을 제공해 주는 로 스트링 리터럴에 대해서 정리했습니다. 인용구 사용 문자열 안에 인용구 같은 또 다른 문자열을 넣고
todamfather.tistory.com
C++ - 특수문자 사용 및 출력 방법
C++에서 특수문자 사용 및 출력할 때 문법을 설명하겠습니다. 특수문자는 ' " , \\ 등이 있습니다.'(작은 따옴표)를 출력하고 싶으면 \\'를 "(큰 따옴표)를 출력하고 싶으면 \\"를 사용하면 됩니다.예
velog.io
https://blog.naver.com/dd1587/220974708330
C언어 \n 외 이스케이프 시퀀스들
저번 포스팅에서 서식문자에 대해 정리했는데요 이번 포스팅에서는 C언어 \n 외의 이스케이프 시퀀스들에 ...
blog.naver.com
https://dad-rock.tistory.com/45
[C++] Raw String | Raw 문자열
Raw String Raw 문자열 - 일반문자, 특수문자에 관계없이 문자들이 서로 독립적으로 구분되는 문자열 상수이다. - Raw 문자열을 이용하면, 특수문자를 표현하기 위해 따로 Escape Sequence 를 사용할 필요
dad-rock.tistory.com
반응형'Algorithm' 카테고리의 다른 글
C++] 백준 5622번 다이얼 (0) 2024.11.25 C++] 대문자, 소문자 바꿔서 출력하기 (1) 2024.11.21