fork(1) download
  1. #include <cstdlib>
  2. #include <string>
  3. #include <vector>
  4.  
  5. unsigned char parse_hex(char c)
  6. {
  7. if ('0' <= c && c <= '9') return c - '0';
  8. if ('A' <= c && c <= 'F') return c - 'A' + 10;
  9. if ('a' <= c && c <= 'f') return c - 'a' + 10;
  10. std::abort();
  11. }
  12.  
  13. std::vector<unsigned char> parse_string(const std::string & s)
  14. {
  15. if (s.size() % 2 != 0) std::abort();
  16. std::vector<unsigned char> result(s.size() / 2);
  17.  
  18. for (std::size_t i = 0; i != s.size() / 2; ++i)
  19. result[i] = 16 * parse_hex(s[2 * i]) + parse_hex(s[2 * i + 1]);
  20.  
  21. return result;
  22. }
  23.  
  24. #include <iomanip>
  25. #include <iostream>
  26.  
  27. int main()
  28. {
  29. for (std::string line; std::getline(std::cin, line); )
  30. {
  31. for (unsigned int n : parse_string(line))
  32. std::cout << std::hex << n << " ";
  33. std::cout << "\n";
  34. }
  35. }
Success #stdin #stdout 0s 3464KB
stdin
33ee
deadbeef
stdout
33 ee 
de ad be ef