在 C 语言中将字符串转换为十六进制并返回
操作字符串和十六进制数字是编程中的常见任务。在 C 中,标准库为这些操作提供了一组函数。
字符串到十六进制 (string_to_hex)
使用 string_to_hex 函数将字符串转换为十六进制。该函数迭代输入字符串中的每个字符,提取其十六进制值,并将其附加到输出字符串。例如,字符串“Hello World”将转换为“48656C6C6F20576F726C64”。
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; }
十六进制到字符串 (hex_to_string)
将十六进制字符串转换回来对于常规字符串,请使用 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; }
这使您可以轻松地在 C 中的字符串和十六进制数据之间进行转换,使其成为方便各种编程场景。
以上是如何在 C 中将字符串转换为十六进制并返回?的详细内容。更多信息请关注PHP中文网其他相关文章!