C での 16 進数の文字列から文字列への変換
16 進数と標準のテキスト形式間の文字列変換には、C での堅牢なアプローチが必要です。詳細なガイドは次のとおりです:
文字列を 16 進数に変換する:
string_to_hex() 関数は簡単な解決策を提供します:
std::string string_to_hex(const std::string& input) { static const char hex_digits[] = "0123456789ABCDEF"; std::string output; output.reserve(input.length() * 2); for (unsigned char c : input) { output.push_back(hex_digits[c >> 4]); output.push_back(hex_digits[c & 15]); } return output; }
16 進数を次のように変換文字列:
16 進数から文字列への変換では、hex_to_string() 関数により精度が保証されます:
std::string hex_to_string(const std::string& input) { const auto len = input.length(); if (len & 1) throw std::invalid_argument("odd length"); std::string output; output.reserve(len / 2); for (auto it = input.begin(); it != input.end(); ) { int hi = hex_value(*it++); int lo = hex_value(*it++); output.push_back(hi << 4 | lo); } return output; }
使用例:
を実証するには、機能:
std::string original_string = "Hello World"; std::string hex_string = string_to_hex(original_string); std::cout << "Hexadecimal representation: " << hex_string << std::endl; std::string recovered_string = hex_to_string(hex_string); std::cout << "Recovered string: " << recovered_string << std::endl;
出力:
Hexadecimal representation: 48656c6c6f20576f726c64 Recovered string: Hello World
以上がC で 16 進文字列と標準文字列の間で効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。