c++中byte数组与字符串的转化
我们不讨论与字符集有关的内容,只讨论在字节流传递过程中的问题。
我们在做⼀系统操作时会需要使⽤到数据流,⽐如接收⽹络数据,⽂件数据,图⽚数据,原始数据⼤多是以byte数组的形式提供,与其它语⾔(c#,java)交互时也是如此。
c++中byte数组是不能传递的,byte指针倒是可以传递,但我⼀直拿不到正确的长度(或许只是我没对⽅法)。我在⽹上也很少能到string 转byte[]或byte[]转string的例⼦,即使有,基本上也不能使⽤。
最终到的⽅法是使⽤std::string代替byte[]进⾏接⼝传递,⽐如⽅法参数,⼀个string参数就够了。但如果传递byte指针,则再需要传递⼀个长度参数,太过⿇烦。
byte数组转string:
byte key[16];
key[0]    =48    ;
key[1]    =49    ;
key[2]    =50    ;
key[3]    =51    ;
key[4]    =52    ;
key[5]    =53    ;
key[6]    =54    ;
key[7]    =55    ;
key[8]    =56    ;
key[9]    =57    ;
key[10]    =65    ;
java中字符串转数组key[11]    =66    ;
key[12]    =67    ;
key[13]    =68    ;
key[14]    =69    ;
key[15]    =70    ;
char* p = new char[sizeof(key)];
memcpy(p,key,sizeof(key));
p[sizeof(key)] = 0;
string str(p);
string 转 byte指针:
byte* px = (byte*)str.c_str();
int len = str.length();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。