c++ 将unsigned char* 转换为std::string

6ljaweal  于 2022-11-27  发布在  其他
关注(0)|答案(2)|浏览(343)

我的类型转换有点差。我有一个字符串在xmlChar*(这是unsigned char*),我想把这个unsigned char转换成一个std::string类型。

xmlChar* name = "Some data";

我尽了最大的努力来进行类型转换,但我找不到转换它的方法。

tpxzln5u

tpxzln5u1#

std::string sName(reinterpret_cast<char*>(name));

reinterpret_cast<char*>(name)以一种不安全的方式从unsigned char*转换为char*,但这是这里应该使用的方法。然后调用std::string的普通构造函数。
您也可以使用C样式(不推荐):

std::string sName((char*) name);
kmbjn2e3

kmbjn2e32#

我认为公认的解决方案有一点风险,而且老实说并不是很好。我认为更好的解决方案是使用std::to_string

unsinged char char1{192};
auto result = std::to_string(char1)

现在char1等于std::string("192")

相关问题