C++里面如果要把BYTE[]转化成String,除了一位一位的转化以外还有啥好方法吗?

2025-04-28 11:14:48
推荐回答(5个)
回答1:

BYTE _data[800];
string strdate;
sprintf(Map_date,"%s",_data);
strdate=Map_date;

但会实际上还是一位一位转的,因为两个都是基础类型,所以。。。。

回答2:

String response = ""; byte[] bytes = response.getBytes(); for(byte b : bytes) System.out.print(b);

回答3:

如果你整容中有个C罗那么你只有C罗的卡就加起了..

回答4:

1、Socket发送数据是以byte字节数组发送的,所以要把其他类型的数据转化成byte[]类型
 2、例子:

//string 转成 byte
string s = "Hello!!";
byte[] b = new byte[1024*1024];
b = System.Text.Encoding.ASCII.GetBytes(s);
   //当string含有中文字符时用 System.Text.Encoding.UTF8.GetBytes(s);
sock.Send(b);
 
//byte 转成 string
byte[] b1 = new byte[1024*1024*2];
sock.Receive(b1); 
string s1 = System.Text.Encoding.ASCII.GetString(b1);
   // System.Text.Encoding.UTF8.GetString(b1);


注意:
在把byte数组转换成string的时候,由于byte数组有2M的字节,所以转换后得到的字符串s1也会填充到2M的字符(用\0来填充)
所以,为了避免这个问题,可以使用Receive返回的字节数来确定接收到byte的长度
    int length = sock.Receive(b1);
    string s1 = System.Text.Encoding.ASCII.GetString(b1, 0, length);
          //这样,s1就为byte实际的值

回答5:

直接写 AnsiString不行?