Supponendo di aver già una stringa in esadecimale, ho provato a scrivere un programmino che data tale stringa mi ritorni la stessa ma con ":" ogni due cifre esadecimali. MA continuo ad avere problemi, perchè inserisce i ":" tra un numero e l'altro e non ogni 2:
codice:
#include <iostream>
#include <string>
using namespace std;
const char* dp= ":";
const char* charray = "46a9a3ad7c14709149b004065fe716d5";
string str2;
int main ()
{
string str2(charray);
str2.assign(charray);
cout << str2 << endl;
for(int i=1; i<256; i++){
str2.insert(i*2, dp);
}
cout << str2 <<endl;
return 0;
}
ma il risultato è:
46:a:9:a:3:a:d:7:c:1:4:7:0:9:1:4:9:b:0:0:4:0:6:5:f :e:7:1:6:d5
quando invece dovrebbe essere
46:a9:a3:ad:7c:14:70:91:49:b0:04:06:5f:e7:16:d5
Dove sbaglio?? :-(