У меня есть функция, которая создает двоичный файл sha1, но мне нужен результат в виде 40-байтовой строки (+1 для null-t).
Есть ли лучший способ преобразования его в строку, чем этот?
unsigned char hash_binary[20] = "\xFF\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x01";
char hash_string[41];
int i;
for(i = 0;i < 20; i++)
sprintf( hash_string + i*2, "%02X", hash_binary[i] );
hash_string[40] = 0;
Это вызывает sprintf 20 раз. Как я могу избежать этого?