> 백엔드 개발 > C++ > C에서 16진수 문자열과 표준 문자열을 효율적으로 변환하는 방법은 무엇입니까?

C에서 16진수 문자열과 표준 문자열을 효율적으로 변환하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-15 22:23:13
원래의
910명이 탐색했습니다.

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

C에서 16진수 문자열을 문자열로 변환

16진수와 표준 텍스트 형식 간의 문자열 변환에는 C에서 강력한 접근 방식이 필요합니다. 자세한 안내는 다음과 같습니다.

문자열을 16진수로 변환:

string_to_hex() 함수는 간단한 솔루션을 제공합니다.

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;
}
로그인 후 복사

16진수를 다음으로 변환 문자열:

16진수를 문자열로 변환하는 경우 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;
}
로그인 후 복사

사용 예:

시연하기 위해 기능:

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;
로그인 후 복사

출력:

Hexadecimal representation: 48656c6c6f20576f726c64
Recovered string: Hello World
로그인 후 복사

위 내용은 C에서 16진수 문자열과 표준 문자열을 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿