Ваш вопрос неоднозначен, это зависит от того, что вы на самом деле хотите:
, если вы хотите, чтобы результат был таким же, как: char s [] = {0x12, 0x34, 0x56, 0x78, '\ 0'}:
тогда вы можете сделать это:
std::string s;
int val;
std::stringstream ss("12 34 56 78");
while(ss >> std::hex >> val) {
s += static_cast<char>(val);
}
после этого вы можете проверить это с помощью:
for(int i = 0; i < s.length(); ++i) {
printf("%02x\n", s[i] & 0xff);
}
который напечатает:
12
34
56
78
в противном случае, если вы хотите, чтобы ваша строка была буквально "\ x12 \ x23 \ x34 \ x56", вы можете сделать то, что предложил Джесси Бедер.