PDA

View Full Version : [c]unsigned char


NA01
10-07-2005, 13:27
come posso convertire una stringa di unsigned char in una stringa di char? o meglio: esiste una funzione standard che lo fa per me?

ciao

ChriD
11-07-2005, 14:26
come posso convertire una stringa di unsigned char in una stringa di char? o meglio: esiste una funzione standard che lo fa per me?

ciao


Potresti provare a fare un cast, ma non riesco a capire a cosa possa servire :confused:
magari era un intero, un double o un float....

DanieleC88
11-07-2005, 15:01
ma non riesco a capire a cosa possa servire :confused:
Neanch'io... :confused:

NA01
11-07-2005, 15:50
ho una stringa c normale da confrontare. il problema è che l'algoritmo dell'md5 restituisce una simpatica stringa di unsigned char da stampare con
una cosa del tipo

for (n = 0; n < 16; ++n)
printf("%02x", *digest++);


come posso fare il confronto?

ciao!

Brazorv
11-07-2005, 15:56
ho una stringa c normale da confrontare. il problema è che l'algoritmo dell'md5 restituisce una simpatica stringa di unsigned char da stampare con
una cosa del tipo

for (n = 0; n < 16; ++n)
printf("%02x", *digest++);


come posso fare il confronto?

ciao!

potresti fare così

for (n = 0; n < 16; ++n)
sprintf(nuova_stringa,"%02x", *digest++);


e confrontarla con nuova_stringa

EDIT la funzione è sprintf non printf

Brazorv
11-07-2005, 16:41
in effetti riguardandola ho scritto una grande stronzata :D

VICIUS
11-07-2005, 17:28
Ma il digest è gia convertito in una stringa o è quello che ti ha dato la funzione di terminazione di md5 ? :confused:
Se devi semplicemente convertire in una stringa il digest questa funzione dovrebbe andare bene anche se non ricordo se è quella giusta :p
void digest_to_sting (const char* digest, const unsigned int len, char* output)
{
assert (digest != NULL);
assert (output != NULL);

int i;
for (i = 0; i < len; ++i)
sprintf (output + (i * 2), "%02x", (unsigned char)digest[i]);
}

ciao ;)