C++中,如何将unsigned char 转换为CString字符串? 5
如:unsignedcharuc[3]={0x31,0x32,0x33};怎么样才能把上面的数据转换为字符串"123"?...
如:unsigned char uc[3] = {0x31,0x32,0x33};
怎么样才能把上面的数据转换为字符串"123" ? 展开
怎么样才能把上面的数据转换为字符串"123" ? 展开
3个回答
展开全部
这个隐含两个细节:
这是unsigned 字符数组,和一般的char array =>string不同,需要强制类型转换。
方法很多,如下列举3种:【我用的GCC编译器, 用string演示;VC的CString方法相同】
#include <iostream>
#include <string>
#include <algorithm>
#include <iterator>
#include <sstream>
using namespace std;
int main(int argc, char** argv) {
unsigned char uc[3] = {0x31,0x32,0x33};
char *pch;
size_t len = sizeof(uc) / sizeof(uc[0]);
string str1 (reinterpret_cast<const char*>(uc),len); //方法1
string str2;
string str3;
//方法2
pch = new char[len+1];
memcpy(pch, uc, len);
pch[len] = '\0';
str2 = pch;
delete pch;
//方法3
stringstream ss;
copy(uc, uc+len, ostream_iterator<char>(ss));
string str3 = ss.str();
//输出
cout << str1 << endl;
cout << str2 << endl;
cout << str3 << endl;
return 0;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询