如何将char转换为关联的转义序列?

时间:2016-09-12 13:56:56

标签: c++ text-processing

我需要转换非文字字符串中包含的转义序列(以便将它们拆分为更多字符,第一个字符为\,其他字符仅为nr或者甚至是八进制代码等)到该转义序列所代表的实际字符。

我的第一个想法是可以使用宏(例如#define to_escape(x) '\(x)'并不起作用),但我想知道是否确实存在这样的方式以及是否有更好的方法。

当然我可以使用一个简单的switch语句来表示\a\f和类似的转义符,但那么我将如何处理所有八进制和十六进制转义?

1 个答案:

答案 0 :(得分:1)

你可以去做这个字节分配

\'  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

检查他们的地址是否与其六位地址匹配,您可以检索以下字符。