Conversion string hexa et décomposition string

pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007 - 31 mars 2007 à 15:00
pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007 - 4 avril 2007 à 16:55
Je dispose d'un buffer de taille variable de type char*. Dans celui-ci se trouve une phrase. Je souhaiterais décomposer cette phrase en bloc de 20 caractères qui seront stokés dans une structure où chaque champ correspond à un bloc de 20 caractères. Enfin je souhaite convertir chacun des caractères de ces champ en hexadécimal.
Merci de me suggerer une solution.
Merci d'avance

7 réponses

JejeLand Messages postés 111 Date d'inscription mercredi 2 février 2005 Statut Membre Dernière intervention 5 août 2011 1
2 avril 2007 à 17:09
Un caractère est simplement un code Hexadécimal qui représente une lettre ou un chiffre ou un symbole.

exemple : les chiffres de 0 à 9 sont represente en Hex de 0x30 à 0x39
0
pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007
2 avril 2007 à 18:03
En fait avec un prinf, je peux ecrire le code hexa d'un caractere.
J'ai forcé le caractere en __int16 mais je sais pas si c'est la bonne méthode.... Qui a une idée?
0
cs_mehdiidhem Messages postés 4 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 4 avril 2007
4 avril 2007 à 15:05
Mon C++ est un peu rouillé, mais essaie ca juste pour voir:
string Char_To_Hex(char caractere)
{
 char hex[8] = {0};
 sprintf(hex, "%x", caractere);
 return hex;
}

Si t'as envie de ne prendre que les caractères, tu change le type de retour en char*, et tu choisis ton caractère
0
cs_mehdiidhem Messages postés 4 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 4 avril 2007
4 avril 2007 à 15:05
Mon C++ est un peu rouillé, mais essaie ca juste pour voir:
string Char_To_Hex(char caractere)
{
 char hex[8] = {0};
 sprintf(hex, "%x", caractere);
 return hex;
}

Si t'as envie de ne prendre que les caractères, tu change le type de retour en char*, et tu choisis ton caractère
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007
4 avril 2007 à 15:31
Merci mehdiidhem pour ta réponse, mais je souhaite convertir mon caractère sans passer par un printf...
0
cs_mehdiidhem Messages postés 4 Date d'inscription vendredi 7 juillet 2006 Statut Membre Dernière intervention 4 avril 2007
4 avril 2007 à 16:03
En fait c'est un sprintf pas un printf, la variable hex contient la conversion en héxa de ton caractère, si t'as une idée derrière la tête autant la dire tout de suite
0
pastaga29 Messages postés 8 Date d'inscription samedi 31 mars 2007 Statut Membre Dernière intervention 2 mai 2007
4 avril 2007 à 16:55
Mille excuses.... merci pour ton conseil je connaissais pas. Je vais le tester. Merci encore
0
Rejoignez-nous