如何将BYTE类型的数组中的内容转换成CHAR型的数组,且每一个元素内的内容不变
如何将BYTE类型的数组中的内容转换成CHAR型的数组,且每一个元素内的内容不变,
如byte a[6];
a[0]=0x01;
a[1]=0x02;
a[3]=0x03;
a[4]=0x04;
a[5]=0x05;
a[6]=0x06;
转换成 char b[];
printf("%s",b)
010203040506
问题点数:50、回复次数:4Top
1 楼zhubo(rickyzhu.com)回复于 2001-12-10 19:00:05 得分 0
你用char*就可以拉
char*本来就等于BYTE的
Top
2 楼XiangDong(吸血蝙蝠)回复于 2001-12-10 19:05:55 得分 0
画蛇添足Top
3 楼zhangnanonnet(鱼欢)回复于 2001-12-10 19:15:12 得分 0
直接负值不行,我试过Top
4 楼jgkc(金戈狂草)回复于 2001-12-10 19:27:14 得分 50
你哪个问题和结果似乎不对呀,如果内容不变,怎么也不可能输出是010203040506吧,好像前面的a[]数组定义的也不行,byte a[6],怎么可能有a[6]?
不过如果你要转换的话,可以如下所示:
byte a[6];
a[0]=0x01;
a[1]=0x02;
a[2]=0x03;
a[3]=0x04;
a[4]=0x05;
a[5]=0x06;
char b[13];
memset(b, 0, sizeof(b));
char *ptr;
ptr = b;
for(int i = 0; i < 6; i++)
{
*ptr++ = 48;
strncpy(ptr, (char *)a + i, 1);
*ptr++ += 48;
}
printf("%s", b);
output:
010203040506Top




