Pages : 1
#1 Le 30/08/2006, à 11:17
- Bouazza
[C++] Convertir Hex en String
Bonjour à tous ,
voilà , j'ai fait une fonction qui devrait convertir un string représentant un nombre en héxadécimal en un string .
Par exemple 4040 devrait représenter @@ .
Mais mon programme plante à l'execution , je précise que je n'ai aucune warning .
Voilà le code :
std::string hex_string(const char *string){
int hex_table[15];
hex_table[0]=(int)"0";
hex_table[1]=(int)"1";
hex_table[2]=(int)"2";
hex_table[3]=(int)"3";
hex_table[4]=(int)"4";
hex_table[5]=(int)"5";
hex_table[6]=(int)"6";
hex_table[7]=(int)"7";
hex_table[8]=(int)"8";
hex_table[9]=(int)"9";
hex_table[10]=(int)"a";
hex_table[11]=(int)"b";
hex_table[12]=(int)"c";
hex_table[13]=(int)"d";
hex_table[14]=(int)"e";
hex_table[15]=(int)"f";
std::string result;
int i=0,n=0,ascii_value=0,tmp=-1;
bool add_to_string=false;
const char *ptr=string;
while(ptr[i]!='\0')
{
if(!add_to_string){
while(hex_table[++tmp]!=ptr[i]);
ascii_value+=tmp*16^n;
if(n==1){
add_to_string=true;
n=0;
}
else n++;
}
else{
add_to_string=false;
result+=(char)ascii_value;
}
}
return(result);
}
Merci d'avance pour toute réponse .
Hors ligne
#2 Le 30/08/2006, à 11:41
- ffomnislash
Re : [C++] Convertir Hex en String
tu parle de convertir un string machin en string truc mais en entré tu a un char* ?
Si tu peut effectivement avec un string en entré alors fait comme ceci:
- conversion string -> int
- conversion int hexa -> int dec
- conversion int -> string
Je suis sur que les 3 fonctions existent deja.
A propos de ton code:
Pourquoi utiliser ptr au lieu de la variable string directement ?
-- Mon blog --
Hors ligne
#3 Le 30/08/2006, à 12:44
- Bouazza
Re : [C++] Convertir Hex en String
Ah beh au début j'utilisait ptr++ , mais depuis que je l'ai utilisé comme un tableau , j'ai oublié de l'enlever et d'utiliser string[i] à la place
Mais je ne veux pas qu'on me dit d'utiliser d'autres fonctions , je veux savoir pourquoi mon code ne marche pas !
Merci d'avance pour toute réponse .
Hors ligne
Pages : 1