Я хочу преобразовать содержимое массива символов без знака в шестнадцатеричное строковое представление.
Может ли кто-нибудь помочь с функцией или выходом?
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();
}
0x33 != "33"
. В противном случае это будет дубликат: массив символов в stdstring"> stackoverflow.com/questions/4691608/ - person NathanOliver   schedule 15.03.2016std::string my_std_string = std::to_string(codeslink);
не понимаю, что ты имеешь в виду? @πάντα ῥεῖ как это лучше всего сделать? @NatanOliver, у меня это тоже не сработало - person DavidoLLP   schedule 15.03.2016std::to_string
и сделайте его одним? Или еще лучшеstd::string my_std_string = "3374747372";
? - person R_Kapp   schedule 15.03.2016