将unsigned char*转换为String

Cyr*_*ril 28 c++ unsigned casting tizen

我在铸造方面有点差.我有一个字符串xmlChar*(这是unsigned char*),我想将这个unsigned char转换为一个std::string类型.

xmlChar* name = "Some data";
Run Code Online (Sandbox Code Playgroud)

我尽力输入,但我无法转换它.

sas*_*hka 49

std::string sName(reinterpret_cast<char*>(name));
Run Code Online (Sandbox Code Playgroud)

reinterpret_cast<char*>(name)unsigned char*char*不安全的方式投射,但这是应该在这里使用的那个.然后你调用普通的构造函数std::string.

你也可以做C风格(不推荐):

std::string sName((char*) name);
Run Code Online (Sandbox Code Playgroud)

  • 根据这个答案:/sf/answers/117147551/ 如果您事先知道字符串的大小,似乎可以避免一些问题: std::string sName(reinterpret_cast&lt;char*&gt;(name) , name_len); (5认同)