Преобразование ASCII std :: string в шестнадцатеричное

есть ли простой способ преобразовать ASCII std :: string в HEX? Я не хочу преобразовывать его в число, я хочу преобразовать только каждый символ ASCII в его шестнадцатеричное значение. Формат вывода также должен быть std :: string. например: «ТЕСТ» будет «0x54 0x45 0x53 0x54» или в каком-то подобном формате.

Я нашел это решение, но, возможно, есть лучшее (без преобразования строки в int в строку):

std::string teststring = "TEST";
std::stringstream hValStr;
for (std::size_t i=0; i < teststring.length(); i++)
{
    int hValInt = (char)teststring[i];
    hValStr << "0x" << std::hex << hValInt << " ";
}

Спасибо,
/ mspoerr

7
задан mspoerr 13 May 2011 в 10:50
поделиться