Для вывода в текстовый файл вы можете сделать что-то вроде этого:
static int string_to_hex_file(const char *filename, const char *string)
{
FILE *out;
const char *s;
if((out = fopen(filename, "w")) == NULL)
return 0;
fprintf(out, "\"%s\", ", string);
for(s = string; *s; s++)
{
if(s != string)
fprintf(out, ", ");
fprintf(out, "0x%02x", (unsigned char) *s);
}
fprintf(out, "\n");
fclose(out);
return 1;
}
Пример вывода для string == "this is a test"
:
"this is a test", 0x74, 0x68, 0x69, 0x73, 0x20, 0x69, 0x73, 0x20, 0x61, 0x20, 0x74, 0x65, 0x73, 0x74
Конечно, можно улучшить проверку ошибок,и вам, вероятно, потребуется настроить форматирование выходных данных в соответствии с вашими потребностями.