我想將無符號字符數組內容轉換爲十六進制字符串表示形式。
任何人都可以幫助一個功能或出路嗎?如何將無符號字符值表示爲十六進制字符串?
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