首頁 > 後端開發 > C++ > 如何在 C 中將字串轉換為十六進位並返回?

如何在 C 中將字串轉換為十六進位並返回?

Mary-Kate Olsen
發布: 2024-12-19 11:25:09
原創
206 人瀏覽過

How to Convert Strings to Hexadecimal and Back in C  ?

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板