Heim > Backend-Entwicklung > C++ > Wie konvertiert man effizient zwischen Hexadezimalzeichenfolgen und Standardzeichenfolgen in C?

Wie konvertiert man effizient zwischen Hexadezimalzeichenfolgen und Standardzeichenfolgen in C?

Patricia Arquette
Freigeben: 2024-12-15 22:23:13
Original
910 Leute haben es durchsucht

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

Konvertieren hexadezimaler Zeichenfolgen in Zeichenfolgen in C

Die Zeichenfolgenkonvertierung zwischen Hexadezimal- und Standardtextformaten erfordert einen robusten Ansatz in C. Hier ist eine detaillierte Anleitung:

String in Hexadezimal konvertieren:

Die Funktion string_to_hex() bietet eine einfache Lösung:

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;
}
Nach dem Login kopieren

Hexadezimal in String konvertieren:

Zum Konvertieren von Hexadezimal zum String sorgt die Funktion hex_to_string() für Genauigkeit:

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;
}
Nach dem Login kopieren

Beispielverwendung:

Um die Funktionalität zu demonstrieren:

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;
Nach dem Login kopieren

Ausgabe :

Hexadecimal representation: 48656c6c6f20576f726c64
Recovered string: Hello World
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie konvertiert man effizient zwischen Hexadezimalzeichenfolgen und Standardzeichenfolgen in C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage