如何在C中转义或终止转义序列
我有一系列字符,我正在为解码function提供支持:
例如:
"\x05three"
(是的,这是一个Pascal样式的字符串。该函数将长度为前缀的字符串转换为以空字符结尾的字符串。)
我写了几个测试用例,其中包括:
"\x04four"
令我惊讶的是,它出现了“Oour”。 仔细观察,事实certificateVisual Studio的转义序列规范允许,我的序列基本上被解释为\x04f
,它在基数10中为79(因此我的结果字符串变为“Oour”,79为“O”)
我的解决方案只是拆分字符串:
"\x04" "four"
问题:是否存在另一种逃避或终止转义序列的方法?
是的,你不能尝试"\004four"
。 实际上,即使是"\04four"
也可能会这样做,因为f
不是八进制数。