字符串文字C++?

Bad*_*Man 14 c++ string

我需要在C++中执行以下C#代码(如果可能的话).我必须使用很多引人注目的引号和其他内容来构造一个长字符串.

const String _literal = @"I can use "quotes" inside here";
Run Code Online (Sandbox Code Playgroud)

R S*_*hko 35

这在C++ 03(当前标准)中不可用.

这是C++ 0x草案标准的一部分,但目前尚不可用.

现在,您只需要明确引用它:

const std::string _literal = "I have to escape my quotes in \"C++03\"";
Run Code Online (Sandbox Code Playgroud)

一旦C++ 0x成为现实,你就可以写:

const std::string _literal = R"(but "C++0x" has raw string literals)";
Run Code Online (Sandbox Code Playgroud)

当你需要)"在你的文字中:

const std::string _literal = R"DELIM(more "(raw string)" fun)DELIM";
Run Code Online (Sandbox Code Playgroud)


Soa*_*Box 7

在C++中没有C#的"@".实现它的唯一方法是正确地转义字符串:

const char *_literal = "I can use \"quotes\" inside here";
Run Code Online (Sandbox Code Playgroud)


Bri*_*ndy 5

C++中没有原始字符串文字.你需要转义你的字符串文字.

std::string str = "I can use \"quotes\" inside here";
Run Code Online (Sandbox Code Playgroud)

C++ 0x在可用时提供原始字符串文字:

R"C:\mypath"
Run Code Online (Sandbox Code Playgroud)

顺便说一下,你不应该用前导下划线命名任何东西,因为这样的标识符在C++中保留.