c++ 将十六进制数组转换成汉字的办法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ 将十六进制数组转换成汉字的办法相关的知识,希望对你有一定的参考价值。

我有一个十六进制的数组str
char str[]="D6D0B9FAC8CB0D0A";//内容是“中国人”三个字。
char chinese[10]=0;
通过什么办法能够将str数组中的十六进制数据转换成汉字,并且存到数组chinese中,谢谢
我在网上找不到办法了,跪求

参考技术A #include <stdio.h>
#include <conio.h>
#include <string.h>
#define N 100

int main()

int i,j,n,len;
char st[]="D6D0B9FAC8CB0D0A";//内容是“中国人”三个字。
char st2[N];
int char2num(char ch);
for (i=0;i<N;i++)
st2[i]=0;

len=strlen(st);
j=0;
for (i=0;i<len;i+=2)

n=char2num(st[i])*16+char2num(st[i+1]);
st2[j++]=n;

printf("st2=%s",st2);

getch();
return 0;


int char2num(char ch) /*将字符转成数字*/

if (ch>='a')
return ch-'a'+10;
else if (ch>='A')
return ch-'A'+10;
else
return ch-'0';
参考技术B // 不知道你这个数组是怎么找的,我试了一下,这样可以输出

#include <stdio.h>
int main()

char a[100];
//scanf("%s",a);
//for(int i=0;i<7;i++)
//printf("%d ",a[i]);
//printf("%c%c%c%c%c%c",a[0],a[1],a[2],a[3],a[4],a[5]);
char b[100]=-42,-48,-71,-6,-56,-53,0;
printf("%s",b);
本回答被提问者和网友采纳
参考技术C //
不知道你这个数组是怎么找的,我试了一下,这样可以输出
#include
<stdio.h>
int
main()

char
a[100];
//scanf("%s",a);
//for(int
i=0;i<7;i++)
//printf("%d
",a[i]);
//printf("%c%c%c%c%c%c",a[0],a[1],a[2],a[3],a[4],a[5]);
char
b[100]=-42,-48,-71,-6,-56,-53,0;
printf("%s",b);

以上是关于c++ 将十六进制数组转换成汉字的办法的主要内容,如果未能解决你的问题,请参考以下文章

如何用JS将一段十六进制(HEX)字符串转换为汉字?

彻底弄懂 Unicode 编码

C++编写一个程序,将用户输入的十进制整数转换成任意进制的数

ASCII 值为0x8c的字符, 定义成char时, 被转换成十六进制的整数0xff8c 。

汉字怎样转换十六进制php

进制转换,请将一个n进制的数转换成m进制的数,并输出.