C 字节数组转换成字符串

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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可以直接将二进制数转换成字符么?

参考技术A 你说的bytes数组是指的什么?仍然是asc编码吗?如果是这样,那你后面是可以用strcpy的。strcpy就是按字节复制。
另外,定义字符串默认都是按照asc或者gb2312来存储的,这种编码都对单字节进行操作。如果是unicode,那么这就需要转换了,这时候再使用strcpy就会出问题。
参考技术B 什么东西,那些不是十六进制数吗?怎么个对应法则?两个字符转换成一个十六进制数?
你就看相应的大写字母乘以16和相应的十六进制数差几嘛,减掉再加上相应的数字,存到数组中去,输出的时候再按十六进制输出就好啦,哎,或者直接strcat()更安逸,又或者用sprintf()貌似也行
参考技术C 转换成字节发送……什么语言可以不用流发送字符串?
存在buf里buf就是你要的字符串!你去printf("[%s]\n",buf);看看吧,也许后面没有结尾,不过是小问题。
参考技术D 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可以进行转化!!

以上是关于C 字节数组转换成字符串的主要内容,如果未能解决你的问题,请参考以下文章

在C++中,如何把字节数组转换成字符串

java和c#的字节数组转换问题

C#-----字节数组(byte[])和字符串相互转换

如何将base64位的字节数组转换成图片并显示

Delphi字节转换字节数组

java将字节数组转换成string