Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to escape or terminate an escape sequence in C

Tags:

c

escaping

I have sequences of characters I'm feeding to a decoding function:

For example:

"\x05three"

(Yes, that's a Pascal-style string. The function translates length-prefixed strings to null-terminated strings.)

I wrote a few test cases, among which:

"\x04four"

And to my surprise, that came out as "Oour". Looking closer, it turns out that the specification on escape sequences for Visual Studio allows that, my sequence is basically interpreted as \x04f, which would be 79 in base 10 (thus my resulting string becomes "Oour", 79 being 'O')

My solution was simply to split the string:

"\x04" "four"

The question: Is there another way to escape or terminate an escape sequence?

like image 664
MPelletier Avatar asked Nov 22 '11 15:11

MPelletier


1 Answers

Yes, you cant try "\004four" for instance. Actually, even "\04four" will probably do, because f is not an octal number.

like image 190
Michael Krelin - hacker Avatar answered Sep 28 '22 09:09

Michael Krelin - hacker