如何将字符串转换为ASCII的十六进制代码用C
问题描述:
我有这样的“你好”如何将字符串转换为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;
}