我有這樣的「你好」如何將字符串轉換爲ASCII的十六進制代碼用C
字符串現在我需要將其轉換爲ASCII碼的十六進制代碼的每個字符,這樣我可以插入它進入數據庫的blob。
任何人都可以提供任何庫函數來轉換字符串?
我有這樣的「你好」如何將字符串轉換爲ASCII的十六進制代碼用C
字符串現在我需要將其轉換爲ASCII碼的十六進制代碼的每個字符,這樣我可以插入它進入數據庫的blob。
任何人都可以提供任何庫函數來轉換字符串?
您可以通過sprintf簡單地將字符格式化爲十六進制代碼。
for(int i=0;i<len;i++){
sprintf(buf, "%x", yourString[i]);
}
試試這個將ascii字符串/ char轉換爲十六進制表示字符串。
非常重要如果你想使用sprintf進行正確的轉換,就是使用unsigned char變量。一些char字符串進來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;
}