请问,如何将一个字节数组里面的数据转换成ASCII字符串?

时间:2023-01-11 13:57:00

BYTE RcvData[300]; 
RcvData[0] = 0x25;
RcvData[1] = 0x00;
RcvData[2] = 0x00;
RcvData[3] = 0x00;
RcvData[4] = 20;
RcvData[5] = 0x66;////字符 'f'的ASCII码
for (int i=1;i<100;i++)//初始化
{
RcvData[5+i] = RcvData[5+i-1] + 1;
}

char *pVersion = NULL;
pVersion = new char[RcvData[4]];//分配空间

memset(pVersion,0,RcvData[4]);
memcpy(pVersion,&RcvData[5],RcvData[4]);

GetDlgItem(IDC_STT_VERSION)->SetWindowText(pVersion);//显示在STATIC中

free(pVersion);

pVersion本来预期的结果是fghijklmnopqrstuvwxy  ,, 但是最后的结果是  fghijklmnopqrstuvwxy的后面多了一些乱码
请各位帮忙改正一下,还有就是期待字节数组转ASCII码的代码,不胜感激

5 个解决方案

#1


有乱码说明在字符串的最后你没有加\0

#2


pVersion = new char[RcvData[4]+1];//分配空间

memset(pVersion,0,RcvData[4]+1);

#3


请问,如何将一个字节数组里面的数据转换成ASCII字符串?

问题解决,谢谢拉.

#4


RcvData[4] = 20;
"fghijklmnopqrstuvwxy"长度也是20,'\0'需要一位存放,你这样分配就导致'\0'没地方放,所以后面就是乱码

#5


我也要看看 

#1


有乱码说明在字符串的最后你没有加\0

#2


pVersion = new char[RcvData[4]+1];//分配空间

memset(pVersion,0,RcvData[4]+1);

#3


请问,如何将一个字节数组里面的数据转换成ASCII字符串?

问题解决,谢谢拉.

#4


RcvData[4] = 20;
"fghijklmnopqrstuvwxy"长度也是20,'\0'需要一位存放,你这样分配就导致'\0'没地方放,所以后面就是乱码

#5


我也要看看