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

MPe*_*ier 12 c escaping

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

例如:

"\x05three"
Run Code Online (Sandbox Code Playgroud)

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

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

"\x04four"
Run Code Online (Sandbox Code Playgroud)

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

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

"\x04" "four"
Run Code Online (Sandbox Code Playgroud)

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

Mic*_*ker 5

是的,你不能试试"\004four".实际上,甚至"\04four"可能会这样做,因为f它不是八进制数.