0

我想以与“\n”和“\a”相同的样式在字符串文字中嵌入某些信号。我的程序查看字符串,查看转义字符,然后根据它后面的字符执行操作。

然而问题在于,作为其编译过程的一部分,C++ 使用“\”作为转义字符来解决任何问题。此外,我经常使用的 C 标准库也使用“%”作为转义字符。

所以不能同时使用“\”和“%”。正斜杠“/”看起来与“\”太相似了,目前,大多数其他字符要么太常用,要么看起来不像转义符。

我的问题是,用作转义字符的最佳字符是什么,它不会与依赖于它们自己的转义字符的常见 C++ 字符串实用程序发生冲突。从这个意义上说,“最佳”将客观地描述一个在正常对话和数学中不常使用的角色,并且一眼就可以识别为逃生。

4

4 回答 4

4

没有理由你不能逃避你的反斜杠(例如\\n)。如果你觉得打字很难看,试试 C++11 中的原始字符串文字:

R"(hello\nfriend\a\b\c\d)"

请注意,括号不是字符串的一部分。如果您的字符串将包含)"您可以将自己的分隔符放在左括号之前,它必须跟在右括号之后:

R"delim(hello\nfriend\a\b)"something)delim"
于 2013-01-20T22:17:38.827 回答
1

我最喜欢的替代转义字符是`(反引号)。为什么?因为它在普通文本中不经常出现,所以 C 和 C++ 根本不使用它,它看起来像一个很小的反斜杠。

于 2013-01-20T22:20:20.510 回答
0

我想你通常可以使用'\',只要你将它作为两个字符保存到字符串中,例如'\'和'n'而不是'\n'。

于 2013-01-20T22:14:39.603 回答
0

bash 用于$将变量插入字符串:

"Hello $name! How are you?"

Windows cmd 使用 % 相同:

"Hello %name%! How are you?

C#{}用于字符串格式化:

String.Format("Hello {0}! How are you?", name)

这些中的任何一个都很容易识别。

于 2013-01-20T22:18:23.083 回答