grazie. giusto per vedere se ho capito come lavora la funzione..la commento:

codice:
int main()
{
	char s[] = "Essere o non essere";
	char x[100];

	char *p=s; // Assegna al puntatore l'indirizzo iniziale dell'area di memoria di s
        char *d=x; // Stessa cosa....
	while(*p)
	{
		sprintf(d, "%02X", *p++); // Copia nell'array x, il valore hex di s[0]
		d+=2; // vengono occupati 2 byte, quindi si sposta di 2 il puntatore nell'array x
	}
	*d=0;

	printf("%s\n", x);

	return 0;
}
a cosa serve azzerare il puntatore d?