반응형
C++11 ~
사용법 : R"( [표현할 문자열] )"
#include <iostream>
#include <string>
using namespace std;
int main() {
string someStr = "aaa\na";
string someRawStr = R"(aaa\na)";
cout << "1 : [" << someStr << "]" << endl;
cout << "2 : [" << someRawStr << "]" << endl;
return 0;
}
다음과 같이 "" 내부에 있는 문자열을 특수문제 무시하고 그대로 표현이 가능하다.
만약... R"( )" 이라는 문자를 그대로 표현하고 싶다면 어떻게 해야 할까?
#include <iostream>
#include <string>
using namespace std;
int main() {
string someStr = "aaa\na";
string someRawStr = R"(aaa\na)";
string someRawStr2 = R"w(aaR"(a\n")a)w";
cout << "1 : [" << someStr << "]" << endl;
cout << "2 : [" << someRawStr << "]" << endl;
cout << "3 : [" << someRawStr2 << "]" << endl;
return 0;
}
이런 식으로 "와 ( 사이에 내가 원하는 문자 하나를 넣어 주고, 닫을때 해당 문자를 다시 넣어 주면
cpp는 해당 것을 raw string 문자열의 시작과 끝으로 인식한다!
그동안 몇몇의 특수문자들을 표현하기 위해선 앞에 \를 하나 더 붙여서 표현해 주곤 했는데,
ex) string file_path = "c:\\Downloads\\~~.txt";
이제 헷갈릴 필요 없이 raw string을 쓰면 간단하게 해결 가능하다!
string file_path = R"(c::\Downloads\~~.txt)";
반응형
'C++ > STL' 카테고리의 다른 글
[C++] std::async, std::thread (1) (0) | 2023.04.09 |
---|---|
[C++17] std::filesystem::path (0) | 2023.04.04 |
[C++17 ] FOLD Expression (0) | 2023.03.29 |
[C++ Container] map/unordered_map. at, []. element access 차이 (0) | 2023.02.24 |
[C++ Container] vector push_back vs emplace_back (0) | 2023.02.22 |