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

如题所述

在这个数组的最后加一个字节'\0'就变成了char字符串。如果原数组的大小最后没有空位,那就得另声明一个大一点的char数组,然后在最后加一个'\0'。如果是要转换成string型字符串,那如下就行了:
char a[20]={'1','s','o'};
for(int i=0;i<n;i++)//n是原字符串的长度
string str+=a[i];

这样就把原来的字符数组a里的元素转换成string型字符串str了……追问

我下节课试试着好吧

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-11-16

  字节数组转化为字符串数组只需要做一个判断:检查字节数组最后一个字节是否为0,如果是,则直接复制。否则则需要追加一个为0的字节到末位。示例代码如下:

char* toString(char* data,size_t len,char* str,size_t strLen)
{//注意strLen>len否则函数结果不可知
    if(data[len-1]==0){
        strcpy(str,data);
    }else{
        memcpy(str,data,len);
        str[len]=0;
    }
    return str;
}

  

第2个回答  2015-09-28
可以用for
char a[100];
String str;
for(int i=0;i<n;i++)
str[i]=a[i];
第3个回答  2015-06-10
char array[]="qwertyuiop";
string str(array);
第4个回答  2015-10-22
DataIn是BYTE型数组
CString str = CString(DataIn)
相似回答