2010-12-14 3 views
0

У меня есть строка, как этот «Hello»как преобразовать строку в шестнадцатеричном коде ASCII в C

Теперь мне нужно, чтобы преобразовать его в шестнадцатеричный код кода ASCII для каждого символа, так что я могу вставить он в блоке базы данных.

Может ли кто-нибудь предложить библиотечную функцию для преобразования строки?

ответ

2

Вы можете просто форматировать символы в hexcode через sprintf.

for(int i=0;i<len;i++){ 
    sprintf(buf, "%x", yourString[i]); 
} 
0

Попробуйте преобразовать строку 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; 
 
}

Смежные вопросы