我的类型转换有点差。我有一个字符串在xmlChar*(这是unsigned char*),我想把这个unsigned char转换成一个std::string类型。
xmlChar*
std::string
xmlChar* name = "Some data";
我尽了最大的努力来进行类型转换,但我找不到转换它的方法。
tpxzln5u1#
std::string sName(reinterpret_cast<char*>(name));
reinterpret_cast<char*>(name)以一种不安全的方式从unsigned char*转换为char*,但这是这里应该使用的方法。然后调用std::string的普通构造函数。您也可以使用C样式(不推荐):
reinterpret_cast<char*>(name)
unsigned char*
char*
std::string sName((char*) name);
kmbjn2e32#
我认为公认的解决方案有一点风险,而且老实说并不是很好。我认为更好的解决方案是使用std::to_string:
std::to_string
unsinged char char1{192}; auto result = std::to_string(char1)
现在char1等于std::string("192")
char1
std::string("192")
2条答案
按热度按时间tpxzln5u1#
reinterpret_cast<char*>(name)
以一种不安全的方式从unsigned char*
转换为char*
,但这是这里应该使用的方法。然后调用std::string
的普通构造函数。您也可以使用C样式(不推荐):
kmbjn2e32#
我认为公认的解决方案有一点风险,而且老实说并不是很好。我认为更好的解决方案是使用
std::to_string
:现在
char1
等于std::string("192")