在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中文網其他相關文章!