#include<stdio.h>
#include<string.h>
int main()
{
char z[20]="我";
char hex[100]="";
//汉字转16进制
unsigned int len=strlen(z);
int i=0;
for(;i<len;i++) //不清楚为什么打印ASCII值>=0x80的字符的16进制就会多6个f
sprintf(hex+2*i,"%x",z[i]&0xff);
printf("%s\n",hex);
//16进制转字符串
len=strlen(hex);
char tem[2]="";
for(i=0;i<len;i+=2){
memcpy(tem,hex+i,2);
sscanf(tem,"%x",z+i/2);
}
printf("%s\n",z);
}
#include<string.h>
int main()
{
char z[20]="我";
char hex[100]="";
//汉字转16进制
unsigned int len=strlen(z);
int i=0;
for(;i<len;i++) //不清楚为什么打印ASCII值>=0x80的字符的16进制就会多6个f
sprintf(hex+2*i,"%x",z[i]&0xff);
printf("%s\n",hex);
//16进制转字符串
len=strlen(hex);
char tem[2]="";
for(i=0;i<len;i+=2){
memcpy(tem,hex+i,2);
sscanf(tem,"%x",z+i/2);
}
printf("%s\n",z);
}
本文介绍了一个简单的C语言程序,该程序演示了如何将汉字字符串转换为十六进制表示,并将其逆转换回原始字符串。通过使用sprintf和sscanf函数进行转换,文章提供了具体的代码实现细节。
657

被折叠的 条评论
为什么被折叠?



