回答
您正在尋找C++的「原始字符串」功能,但它是一個相當新近的加法(我相信C++ 11)。
std::string howManySlashesAreThereIn = R"(\\\\\\)";
它記錄在C++ 11標準的2.14.5 String lieterals
,儘管這大部頭可能是你有點幹,所以我建議在谷歌上搜索"raw string" c++
起來。
除了擺脫那些逃避加倍像"\\\\nasbox\\sharename\\downloads\\super_sekrit_stuff"
monstrosites的,它也允許你繞過「添加\n
字符,並結合相鄰串」絕招如車刀:
htmlString =
"<HTML>\n"
"<HEAD>\n"
"<TITLE>My page</TITLE>\n"
"<META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=utf-8\">\n"
"</HEAD>\n"
"<BODY LINK=\"#0000ff\" VLINK=\"#800080\" BGCOLOR=\"#ffffff\">\n"
"<P> </P>\n"
"<PRE>\n";
到更多的東西可讀(不完全相同同樣由於第二變型空間,但完全沒問題的HTML,因爲它忽略了在這種情況下,加空格):
htmlString = R"xyzzy(
<HTML>
<HEAD>
<TITLE>My page</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
</HEAD>
<BODY LINK="#0000ff" VLINK="#800080" BGCOLOR="#ffffff">
<P> </P>
<PRE>
)xyzzy";
C++ 11增加了raw
至少有點類似的字符串文字。
R"(This is a raw literal)";
這些是正則表達式特別有用,比如:
R"@(\w+\d*)@"
...這將作爲一個傳統的文字是:
"\\w+\\d*"
雖然差別不是很大,它可以有所作爲,特別是在較長的正則表達式中。
分隔符「@」必須在引號內。 – user362515
@ user362515:哎呀 - 令人驚訝的是,如果打字錯誤不能通過編譯器運行,它會如何生存將近4年? –
Here是原始字符串文字(C++ 11)的一個例子。
逐行顯示換行符和反斜槓。
- 1. 在Python中,什麼C++等價於'r'前綴字符串?
- 2. C#中字符串前的@是什麼?
- 3. 什麼是Perl的重複操作符的C#等價物?
- 4. rlwinm的C++等價物是什麼? (PowerPC)
- 5. 什麼是C++中的instanceof等價物?
- 6. 什麼是EventWaitHandle的Objective C等價物?
- 7. 什麼是ChrW(e.KeyCode)的C#等價物?
- 8. 什麼是UINT32_MAX的C++等價物?
- 9. &H2的C#等價物是什麼?
- 10. 什麼是C#中的vbNullChar等價物?
- 11. 什麼是C?:operator的Ruby等價物?
- 12. 什麼是C++ typeid的Scala等價物?
- 13. C#中bigint的等價物是什麼?
- 14. C#中TreeBidiMap的等價物是什麼?
- 15. 什麼是Java DecimalFormat的c#等價物?
- 16. 什麼是CRT的C++等價物?
- 17. C#中memset的等價物是什麼?
- 18. 什麼是C++ deque的Java等價物?
- 19. 什麼是MsgWaitForMultipleObjects的C#等價物?
- 20. 什麼是Java Socket.getInetAddress()的C#等價物?
- 21. Ruby中Python文檔字符串的等價物是什麼?
- 22. 什麼是WinForm字符串的WPF等價物?
- 23. C#等價的Ruby符號
- 24. @前綴對C#中的字符串文字做了什麼?
- 25. 什麼是C#字符串
- 26. 什麼是Haxe的Adobe Flash符號庫的等價物?
- 27. C#字符串的PHP等價[]
- 28. PHP等價於Objective-C的@「字符串」
- 29. Java jar符號信息:什麼是tdstrip的等價物?
- 30. ANTLR BNF語法符號中的epsilon等價物是什麼?
他的意思是逐字字符串。 – Mehrdad
可能重複的[字符串文字C++?](http://stackoverflow.com/questions/2597322/string-literals-c) – Mehrdad
@Jake - 嘿!感謝澄清。 .Net術語是「逐字字符串文字」,其目的是使「\」不被視爲轉義字符:http://msdn.microsoft.com/en-us/library/aa691090%28v=vs 0.71%29.aspx。有在任何Java或C的當前版本,沒有等價++(沒有,我*不*考慮C++ 11「當前版本」;)) – paulsm4