如何将unsigned char值表示为十六进制字符串?

时间:2016-03-15 16:44:45

标签: c++ arrays string unsigned-char

我想将unsigned char数组内容转换为十六进制字符串表示 任何人都可以帮助一个功能或出路吗?

3374747372

我希望将返回值@πάνταῥεῖ:作为char或string。

更新 这是我使用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(); } 这样的各种长度。

field

1 个答案:

答案 0 :(得分:1)

  

我希望将返回值3374747372作为char或string。

在这种情况下,施法不起作用。

您可以使用文本格式IO来获取数组内容的十六进制字符串表示形式:

unsigned char codeslink[5] ={ 0x33, 0x74, 0x74, 0x73, 0x72};
std::ostringstream oss;
oss << std::hex << std::setfill('0');
for(size_t i = 0; i < 5; ++i) {
    oss << std::setw(2) << (unsigned int)codeslink[i];
}
std::string result = oss.str();

Live Demo