Попробуйте преобразовать строку ascii/char в шестнадцатеричную строку представления.
Очень важно, если вы хотите, чтобы правильное преобразование с помощью sprintf использовало переменные без знака. Некоторые строки символов относятся к формат строки unicode, и они должны быть сначала преобразованы в «unsigned char».
#include <stdio.h>
#include <string.h>
int main(void){
unsigned char word[17], unsigned outword[33];//17:16+1, 33:16*2+1
int i, len;
printf("Intro word:");
fgets(word, sizeof(word), stdin);
len = strlen(word);
if(word[len-1]=='\n')
word[--len] = '\0';
for(i = 0; i<len; i++){
sprintf(outword+i*2, "%02X", word[i]);
}
printf("%s\n", outword);
return 0;
}