我希望以与“\ n”和“\ a”相同的样式在字符串文字中嵌入某些信号。我的程序查看字符串,查看转义字符,然后根据它后面的字符行动。
然而问题是C ++作为编译过程的一部分,使用“\”作为转义字符解析任何东西。另外,我经常使用的C标准库也使用“%”作为转义字符。
因此无法使用“\”和“%”。正斜杠“/”看起来太像“\”了,目前,大多数其他字符要么太常用,要么不会出现逃逸现象。
我的问题是,什么是用作转义字符的最佳字符,它不会与依赖于它们自己的转义字符的常见C ++字符串实用程序发生冲突。在这个意义上,“最好的”会客观地描述在正常的对话和数学中很少使用的角色,并且很容易被识别为一目了然的逃脱。
答案 0 :(得分:4)
没有理由不能逃避反斜杠(例如\\n
)。如果您发现难以输入,请尝试使用C ++ 11中的原始字符串文字:
R"(hello\nfriend\a\b\c\d)"
请注意,括号不是字符串的一部分。如果你的字符串将包含)"
,你可以在左括号之前放置自己的分隔符,这必须遵循结束的括号:
R"delim(hello\nfriend\a\b)"something)delim"
答案 1 :(得分:1)
我最喜欢的替代逃脱角色是`
(反击)。为什么?因为它不常出现在普通文本中,所以C和C ++根本不使用它,它看起来像一个小反斜杠。
答案 2 :(得分:0)
我想你通常可以使用'\',只要你把它作为两个字符保存到字符串中,例如'\'和'n'而不是'\ n'。
答案 3 :(得分:0)
bash使用$
将变量插入字符串:
"Hello $name! How are you?"
Windows cmd使用%表示相同的内容:
"Hello %name%! How are you?
C#使用{}
进行字符串格式化:
String.Format("Hello {0}! How are you?", name)
任何这些都很容易识别。