我有 unsigned char*
,想把它转换成 std::string
。你能告诉我最安全的方法吗?
最佳答案
您只需要将 unsigned char
转换为 char
,因为 string
类没有接受 的构造函数无符号字符
:
unsigned char* uc;
std::string s( reinterpret_cast< char const* >(uc) ) ;
但是,如果您的字节数组包含空值,您将需要在构造函数中使用长度参数,就像您不这样做一样,只有部分数组将在字符串中结束(数组直到第一个空值)
size_t len;
unsigned char* uc;
std::string s( reinterpret_cast<char const*>(uc), len ) ;
https://stackoverflow.com/questions/1673445/