I need to do the following C# code in C++ (if possible). I have to initialize a long string with lots of quotes and other stuff in it.
// C# verbatim string
const String _literal = @"I can use "quotes" inside here";
I need to do the following C# code in C++ (if possible). I have to initialize a long string with lots of quotes and other stuff in it.
// C# verbatim string
const String _literal = @"I can use "quotes" inside here";
That is not available in C++03 (the current standard).
That is part of the C++0x draft standard but that's not readily available just yet.
For now, you just have to quote it explicitly:
const std::string _literal = "I have to escape my quotes in \"C++03\"";
Once C++0x becomes reality, you'll be able to write:
const std::string _literal = R"(but "C++0x" has raw string literals)";
and when you need )"
in your literal:
const std::string _literal = R"DELIM(more "(raw string)" fun)DELIM";
)"
in the actual string. –
Merrymaking There is no equivalent of C#'s "@" in C++. The only way to achieve it is to escape the string properly:
const char *_literal = "I can use \"quotes\" inside here";
There is no raw string literals in C++. You'll need to escape your string literals.
std::string str = "I can use \"quotes\" inside here";
C++0x offers a raw string literal when it's available:
R"C:\mypath"
By the way you should not name anything with a leading underscore as such identifiers are reserved in C++.
R"(C:\mypath)"
–
Merrymaking There is no such mechanism in C++. You'll have to do it the old fashioned way, by using escapes.
You might be able to use a scripting language to make the escaping part a little easier, though. For instance, the %Q
operator in Ruby will return a properly escaped double-quoted string when used in irb
:
irb(main):003:0> %Q{hello "world" and stuff with tabs}
=> "hello \"world\" and stuff\twith\ttabs"
© 2022 - 2024 — McMap. All rights reserved.