C/Visual C - Secuencia de escape en una cadena

 
Vista:

Secuencia de escape en una cadena

Publicado por MQuinteiro (3 intervenciones) el 05/09/2005 16:49:49
Hola a todos, me asalta una duda/problema a la hora de construir una cadena en C. Estoy utilizando gcc en linux.

Mi intención es crear una cadena con los siguientes caracteres 0x05, "1", "Hola".

Como toda la vida he creido realizo un

sprintf (s, "\x051Hola"); y para sorpresa mi sorpresa, me sale la cadena "QHola" (Q es el caracter 0x51)

añado un cero al caracter de escape de la siguiente forma:

sprintf (s, "\x0051Hola") y sigo teniendo como resultado "QHola"

le pongo tres 0 y sigue haciendo lo mismo. A mi entender la secuencia de escape es \xnn siendo nn el valor del caracter exadecimal, pero debo estar haciendo algo mal.

Alguna sujerencia?

Nota: sprintf(s, "\x05Hola") si funciona como se esperaba.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Secuencia de escape en una cadena

Publicado por Googol (255 intervenciones) el 05/09/2005 23:41:30
Caray, qué curioso :-m
Nunca he tenido que escribir caracteres tan bajos en la tabla ASCII, a si es que es la primera vez que veo esto :-) Yo tambien pensaba que era \xnn, como tu, pero, efectivamente, no funciona :-D

He probado a utilizar octal y tampoco rula. La solucion (incomoda y obvia) que se me ocurre es

sprintf(s, "%c1Hola", '\x05');

que no es ninguna belleza pero te hace un apaño...

Un saludo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Secuencia de escape en una cadena

Publicado por mquinteiro (3 intervenciones) el 06/09/2005 18:29:05
Esa es la que uso ahora, pero estoy perplejo y me gustaria salir de esa perplejidad!

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar