Heim >Backend-Entwicklung >C++ >Wie konvertiert man effizient zwischen Hexadezimalzeichenfolgen und Standardzeichenfolgen 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; }
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; }
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;
Ausgabe :
Hexadecimal representation: 48656c6c6f20576f726c64 Recovered string: Hello World
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!