Bonjour,

J''ai plusieurs chaînes de caractères représentant des caractères héxadécimaux mais qui sont des strings.

Un exemple de chaîne (et sa création) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
char *hex = NULL;
size = 2;
hex = malloc (sizeof (*hex) * (size + 1));
hex[size] = '\0';
 
// et enfin hex ressemble à quelque chose comme ça :
hex = "A2";
J'aimerais donc concaténer au début de la chaîne '\x' ou 0x pour que mon string soit considéré en hexa. J'ai bien essayé beaucoup de trucs dont le dernier en date :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
strcat(pdu_connection, "\\x");
strncat(pdu_connection, hex, 2);
Mais le souci est que \x est reconnu car des caractères, et est donc envoyé en tant que tel dans ma trame (qui sera envoyé par socket tcp).

Cette chaîne de caractère écrite en dur fonctionne parfaitement :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
char BindTransceiver[] = "\x00\x00\x00\x2F\x00\x00\x00\x09\x00\x00\x00\x00\x00\x00\x00\x01\x73\x6D\x70\x70\x63\x6C\x69\x65\x6E\x74\x31\x00\x70\x61\x73\x73\x77\x6F\x72\x64\x00\x27\x56\x4D\x41\x27\x00\x34\x00\x00\x00";
Mais j'suis obligé d'automatiser sa génération, j'en aurais pas mal à créer.

Merci d'avance pour votre aide