我需要转换非文字字符串中包含的转义序列(以便将它们拆分为更多字符,第一个是 \
,其他只是 n
, r
甚至八进制代码等)到该转义序列表示的实际字符。
我的第一个想法是可以使用宏(比如 #define to_escape(x) '\(x)'
是行不通的),但我想知道是否真的有一个就像这样,如果有更好的方法。
当然,我可以使用简单的 switch 语句来转义,例如 \a
、\f
和类似的转义,但是我将如何处理所有八进制和十六进制转义?
最佳答案
你可以去分配这个字节
\' single quote byte 0x27 in ASCII encoding
\" double quote byte 0x22 in ASCII encoding
\? question mark byte 0x3f in ASCII encoding
\\ backslash byte 0x5c in ASCII encoding
\a audible bell byte 0x07 in ASCII encoding
\b backspace byte 0x08 in ASCII encoding
\f form feed - new page byte 0x0c in ASCII encoding
\n line feed - new line byte 0x0a in ASCII encoding
\r carriage return byte 0x0d in ASCII encoding
\t horizontal tab byte 0x09 in ASCII encoding
\v vertical tab byte 0x0b in ASCII encoding
检查他们的地址是否匹配他们的十六进制地址,你可以检索以下字符。
关于c++ - 如何将 char 转换为关联的转义序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39452065/