C++ string 다루기 2

최대 1 분 소요

로 스트링 리터럴

로 스트링 리터럴(raw string literal)이란 여러 줄에 걸쳐 작성할 스트링 리터럴이다. 로 스트링 리터럴은 R"(로 시작해서 )"로 끝난다. 로 스트링 에서 줄바꿈은 그냥 엔터를 입력하면 된다.
const char *str = R"(Line 1
Line 2)";
위 코드는 아래의 코드와 동일하다.
const char *str = "Line 1\nLine 2";

확장 로 스트링 리터럴

로 스트링 리터럴은 )"로 끝나기 때문에 그 안에 넣을 수 없다. 넣기 위해서는 다음과 같은 확장 로 스트링 리터럴(extended raw string literal)구문으로 표현해야 한다.
NOTE_ 확장 로 스트링 리터럴 구문
R"d-char-sequence(r-char-sequence)d-char-sequence"
r-char-sequence에 해당하는 부분이 실제 로 스트링이다. d-char_sequence에 로 펴현한 부분은 구문자 시퀸스(delimeter sequence)로서, 반드시 로 스트링 리터럴의 시작과 끝에 똑같이 나와야 한다.

예를 들면 아래와 같다.
const char *str = R"-(Embedded )" characters)-";

정리

아래 내용만 숙지하면 될 것 같다.
  • 로 스트링 리터럴은 R"(로 시작해서 )"로 끝난다.
  • 이스케이프 시퀸스는 무시한다.
  • )"를 넣기 위해서는 확장 로 스트링 리터럴 구문으로 표현한다.

참고

  • 전문가를 위한 C++