在c++字符串字面量中使用的可接受的自定义转义字符是什么?

What are acceptable custom escape characters for use within C++ string literals

本文关键字:可接受 自定义 转义字符 是什么 字符串 c++      更新时间:2023-10-16

我想在字符串文字中嵌入与"n"answers"a"相同风格的某些信号。我的程序查看字符串,看到转义字符,然后根据它后面的字符采取行动。

然而问题是c++,作为它的编译过程的一部分,解决任何使用""作为转义字符。此外,我经常使用的C标准库也使用"%"作为转义字符。

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

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

没有理由不能转义反斜杠(例如\n)。如果您发现这种类型很难看,请尝试c++ 11中的原始字符串字面值:

R"(hellonfriendabcd)"

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

R"delim(hellonfriendab)"something)delim"

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

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

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

"Hello $name! How are you?"

Windows cmd使用%表示相同的

"Hello %name%! How are you?

c#使用{}进行字符串格式化:

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