Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Rentetan kepada Perenambelasan dan Kembali dalam C?

Bagaimana untuk Menukar Rentetan kepada Perenambelasan dan Kembali dalam C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-19 11:25:09198semak imbas

How to Convert Strings to Hexadecimal and Back in C  ?

Menukar Rentetan kepada Hex dan Kembali dalam C

Memanipulasi rentetan dan nombor perenambelasan ialah tugas biasa dalam pengaturcaraan. Dalam C , perpustakaan standard menyediakan satu set fungsi untuk operasi ini.

String to Hex (string_to_hex)

Menukar rentetan kepada heksadesimal dicapai menggunakan fungsi string_to_hex . Fungsi ini berulang melalui setiap aksara dalam rentetan input, mengekstrak nilai perenambelasannya dan menambahkannya pada rentetan output. Contohnya, rentetan "Hello World" akan ditukar kepada "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)

Untuk menukar rentetan heksadesimal belakang kepada rentetan biasa, gunakan fungsi hex_to_string. Di sini, setiap pasangan digit perenambelasan ditukar kepada integer dan integer yang terhasil digabungkan untuk membentuk rentetan output.

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;
}

Ini membolehkan anda menukar antara rentetan dan data perenambelasan dengan mudah dalam C , menjadikannya sesuai untuk pelbagai senario pengaturcaraan.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan kepada Perenambelasan dan Kembali dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn