Если вы хотите сохранить шестнадцатеричные значения в строке char *
, вы можете использовать snprintf
.Вам нужно выделить место для всех напечатанных символов, включая начальные нули и двоеточие.
Расширение ответа Марка:
char str_buf* = malloc(3*X + 1); // X is the number of bytes to be converted
int i;
for (i = 0; i < x; i++)
{
if (i > 0) snprintf(str_buf, 1, ":");
snprintf(str_buf, 2, "%02X", num_buf[i]); // need 2 characters for a single hex value
}
snprintf(str_buf, 2, "\n\0"); // dont forget the NULL byte
Так что теперь str_buf
будет содержать шестнадцатеричную строку.