C 字节数组转换成字符串

Java和C语言的串口通信中,Java把字符串:"we have 3 apples"转换成bytes数组发送。C语言接收到bytes数组,存在 *buf里。如何把*buf 中的字节数组转换成原先的字符串:"we have 3 apples", 然后存在*a 这个数组中?
*buf里存的是将we have 3 apples转换成ASCII码,然后再转换成2进制数的数组。strcpy可以直接将二进制数转换成字符么?

第1个回答  2010-08-20
你说的bytes数组是指的什么?仍然是asc编码吗?如果是这样,那你后面是可以用strcpy的。strcpy就是按字节复制。
另外,定义字符串默认都是按照asc或者gb2312来存储的,这种编码都对单字节进行操作。如果是unicode,那么这就需要转换了,这时候再使用strcpy就会出问题。
第2个回答  2019-06-11
什么东西,那些不是十六进制数吗?怎么个对应法则?两个字符转换成一个十六进制数?
你就看相应的大写字母乘以16和相应的十六进制数差几嘛,减掉再加上相应的数字,存到数组中去,输出的时候再按十六进制输出就好啦,哎,或者直接strcat()更安逸,又或者用sprintf()貌似也行
第3个回答  2010-08-20
转换成字节发送……什么语言可以不用流发送字符串?
存在buf里buf就是你要的字符串!你去printf("[%s]\n",buf);看看吧,也许后面没有结尾,不过是小问题。本回答被网友采纳
第4个回答  推荐于2018-04-13
byte 是 unsigned char.

unsigned char buf[]="we have 3 apples";
char a[50];
strcpy(a,buf);
printf("%s\n",a);本回答被网友采纳
第5个回答  2010-08-21
char s[25];
CString str;
sprintf(str,"%s",s);
用sprintf可以进行转化!!