我想将无符号字符数组内容转换为十六进制字符串表示形式。
任何人都可以帮助一个功能或出路吗?如何将无符号字符值表示为十六进制字符串?
unsigned char codeslink[5] ={ 0x33, 0x74, 0x74, 0x73, 0x72};
std::string my_std_string(reinterpret_cast<const char *>(codeslink), 5);
std::string my_std_string((const char *)codeslinks);
我想要返回值为3374747372
作为字符或字符串。
更新: 这是我想出了利用@πάνταῥεῖ:
答案的功能,我想变得更好,并使其强劲的处理unsigned char
像各种长度尺寸的0x00,0x04,0x00,0x11
。
std::string Return_Uchar_To_String(unsigned char uns_char, size_t uns_char_len)
{
std::ostringstream oss;
oss << std::hex << std::setw(2) << std::setfill('0');
for(size_t i = 0; i < uns_char_len; ++i)
{
oss << (unsigned int)uns_char[i];
}
return oss.str();
}
'的std :: string my_std_string =的std :: to_string(3374747372);'? –
这不是通过铸造完成的。 –
这不会起作用:'0x33!=“33”'。否则,这是重复的:http://stackoverflow.com/questions/4691608/copying-non-null-terminated-unsigned-char-array-to-stdstring – NathanOliver