PDA

Visualizza la versione completa : [C++] Buffer stringa dati in esadecimale


giulio-g
08-02-2007, 11:16
Ciao ragazzi,
ho un problemino con le stringhe. Vorrei passare ad un buffer dei dati in esadecimale ma quando vado poi a controllarne la lunghezza ho 8 caratteri anzichè 32...perchè?
Allego il semplice codice:

char buffer[256];
memcpy(buffer, "\xA2\x13\x10\x91\x46\x0B\x81\x15\x00\x00\x00\x00\x 00\x00\x00\x00"
"\xFF\xFF\xFF\xFF\xFF\xD2\x76\x00\x00\x04\x00\xFF\x FF\xFF\xFF\xFF",
32);

len = strlen(buffer);

printf("Buffer: %i\n",len);

Grazie a tutti ciao ciao

andbin
08-02-2007, 11:31
Originariamente inviato da giulio-g
Ciao ragazzi,
ho un problemino con le stringhe. Vorrei passare ad un buffer dei dati in esadecimale ma quando vado poi a controllarne la lunghezza ho 8 caratteri anzichè 32...perchè?
Allego il semplice codice:

char buffer[256];
memcpy(buffer, "\xA2\x13\x10\x91\x46\x0B\x81\x15\x00\x00\x00\x00\x 00\x00\x00\x00"
"\xFF\xFF\xFF\xFF\xFF\xD2\x76\x00\x00\x04\x00\xFF\x FF\xFF\xFF\xFF",
32);

len = strlen(buffer);

printf("Buffer: %i\n",len);

Grazie a tutti ciao ciao Prima di tutto ... cambia titolo. :zizi:

Seconda cosa: ovvio che ritorna 8!! strlen() è fatta per operare su stringhe ... cioè su una sequenza di caratteri terminata dal carattere nullo ('\0').

Quindi è sbagliato usare strlen. Vuoi sapere la lunghezza di un blocco di dati binari?? ...... non c'è una funziona apposita!!! Devi saperlo TU quanto scrivi/leggi!!!

giulio-g
08-02-2007, 11:39
OK..grazie mille!!!

LeleFT
08-02-2007, 12:45
Originariamente inviato da andbin
Prima di tutto ... cambia titolo. :zizi: Quoto. Aggiungo anche il link per il Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=973887), leggerlo non fa male.


Ciao. :ciauz:

Loading