【发布时间】:2018-06-27 09:00:27
【问题描述】:
我使用两种不同的方式将char array 转换为string,但它们都返回4 作为字符串的length,而字符大小为16:
char chr[16] = { 0x0E,0x1F,0xBA,0x0E,0x00,0xB4,0x09,0xCD,0x21,0xB8,0x01,0x4C,0xCD,0x21,0x57,0x69 };
const string str(chr); // First try
string str2 = static_cast<string>(chr); // Second try
cout << sizeof chr << endl; // size of the char
cout << "Converted: " << str << " Size: " << str.length() << endl; // length of converted char
cout << "Converted: " << str2 << " Size: " << str2.length() << endl; // length of converted char
这种数据丢失的原因是什么?解决方法是什么?
【问题讨论】:
-
如果您想要一个字符数组而不是一段文本,请考虑
std::vector<char>。std::vector<std::int8_t>或std::vector<std::uint8_t>可能更好。
标签: c++ casting type-conversion