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

标签 c++ text-processing

我需要转换非文字字符串中包含的转义序列(以便将它们拆分为更多字符,第一个是 \ ,其他只是 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/

相关文章:

python - 用同义词替换单词

python - 处理两条标记线之间的文本文件行

python - 使用 Python 自然语言工具包阅读孟加拉语

JavaScript 在正确的出现处映射具有多个匹配项的正则表达式

c# - 文字异常

c++ - 按列主要顺序重新排序 3D vector 三元组很慢

c++ - 为什么从 const 成员函数返回的 *this 不能用于调用 C++ 中的其他函数?

C++使用函数对象对 vector 进行排序

c++ - 错误 : void value not ignored as it ought to be - C/GTK+

c++ - 使用 Win32 C++ 检测文件句柄泄漏