Rumah >pembangunan bahagian belakang >C++ >Bagaimana dengan Cekap Menukar Antara Rentetan Heksadesimal dan Rentetan Piawai dalam C?

Bagaimana dengan Cekap Menukar Antara Rentetan Heksadesimal dan Rentetan Piawai dalam C?

Patricia Arquette
Patricia Arquetteasal
2024-12-15 22:23:13911semak imbas

How to Efficiently Convert Between Hexadecimal Strings and Standard Strings in C  ?

Menukar Rentetan Heksadesimal kepada Rentetan dalam C

Penukaran rentetan antara format teks perenambelasan dan standard memerlukan pendekatan yang mantap dalam C . Berikut ialah panduan terperinci:

Tukar Rentetan kepada Perenambelasan:

Fungsi string_to_hex() menawarkan penyelesaian mudah:

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

Tukar Heksadesimal kepada Rentetan:

Untuk menukar daripada perenambelasan kepada rentetan, fungsi hex_to_string() memastikan ketepatan:

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

Contoh Penggunaan:

Untuk menunjukkan kefungsian:

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;

Output:

Hexadecimal representation: 48656c6c6f20576f726c64
Recovered string: Hello World

Atas ialah kandungan terperinci Bagaimana dengan Cekap Menukar Antara Rentetan Heksadesimal dan Rentetan Piawai 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