[C++] - Raw String Literal

Category: C++ - Written on May 27, 2017

MSDN: A raw string literal is a null-terminated array—of either constant char or constant wchar_t—that contains any graphic character, including the double quotation mark (“), backslash (\), or newline character. Raw string literals are often used in regular expressions that use character classes, and in HTML strings and XML strings. For examples, see the following article: Bjarne Stroustrup’s FAQ on C++11.

https://msdn.microsoft.com/en-us/library/69ze775t(v=vs.120).aspx


#include <iostream>
#include <string>
	
int main()
{
	std::string str = R"(C:\Windows\System32)";
	std::cout << str << std::endl;
	return 0;
}

결과:

C:\Windows\System32



로우 문자열 리터럴에서는 \t, \n 과 같은 역슬래시를 통한 이스케이프 시퀸스를 일반 문자열로 취급한다.

일반적으로 문자열에서 따옴표를 표현하려면 아래와 같이 이스케이프 시퀸스를 사용해야 한다.

std::string str = "\"gliese2128\"";

로우 문자열 리터럴을 이용하면 아래와 같이 이스케이프 시퀸스를 사용하지 않아도 된다.

로우 문자열 리터럴R"( 로 시작하고 )" 로 끝난다.

std::string str = R"("gliese2128")";
/* str = ""gliese2128"" */
std::string str = R"(\t\n % & \ ")";
/* str = "\t\n % & \ "" */


Mark Gregory(2016). Professional C++. HANBIT Media


Comments