如何在C中转义或终止转义序列

我有一系列字符,我正在为解码function提供支持:

例如:

"\x05three" 

(是的,这是一个Pascal样式的字符串。该函数将长度为前缀的字符串转换为以空字符结尾的字符串。)

我写了几个测试用例,其中包括:

 "\x04four" 

令我惊讶的是,它出现了“Oour”。 仔细观察,事实certificateVisual Studio的转义序列规范允许,我的序列基本上被解释为\x04f ,它在基数10中为79(因此我的结果字符串变为“Oour”,79为“O”)

我的解决方案只是拆分字符串:

 "\x04" "four" 

问题:是否存在另一种逃避或终止转义序列的方法?

是的,你不能尝试"\004four" 。 实际上,即使是"\04four"也可能会这样做,因为f不是八进制数。