【发布时间】:2019-09-11 20:33:45
【问题描述】:
byte S[5] = {0x48, 0x00, 0x65, 0x00, 0x6C}
我想知道如何将上面的字节数组转换为字符串。
将上述字节数组转换为字符串时,应输出"Hello"。
我尝试了各种方法,但都没有解决。
String^ a = System::Convert::ToString(S);std::string s(reinterpret_cast <const char*> (S), 5);
输出一个完全不同的字符串。我该怎么办?
【问题讨论】:
-
String^ a = System::Convert::ToString(S);看起来不像 C++。 -
为什么要打印
hello?数组中有两个0x00,它们都是空终止符。 -
您使用的是什么编码? ASCII 是 7 位。
-
添加了“c++-cli”标签,因为
String^不是纯 C++ 的有效语法,但适用于 Microsoft 憎恶。 -
有什么阻止你使用暴力方法吗?例如遍历数组,如果字节不是nul,则追加到字符串中。
标签: c++-cli