У меня есть:
uint8 buf[] = {0, 1, 10, 11};
Я хочу преобразовать массив байтов в строку, чтобы я мог распечатать строку с помощью printf:
printf("%s\n", str);
и get (двоеточия не нужны):
"00:01:0A:0B"
Любая помощь будет принята с благодарностью.
Можно решить с snprintf и malloc.
char c_buff[50];
u8_number_val[] = { 0xbb, 0xcc, 0xdd, 0x0f, 0xef, 0x0f, 0x0e, 0x0d, 0x0c };
char *s_temp = malloc(u8_size * 2 + 1);
for (uint8_t i = 0; i < u8_size; i++)
{
snprintf(s_temp + i * 2, 3, "%02x", u8_number_val[i]);
}
snprintf(c_buff, strlen(s_temp)+1, "%s", s_temp );
printf("%s\n",c_buff);
free(s);
: bbccdd0fef0f0e0d0c