среда, 20 ноября 2013 г.

C++. Convert hex to string

В рамках одного проекта встала задача сконвертировать hex в string. Гуглятся совершенно разные примеры и подходы. Я же хочу поделиться своим, на мой взгляд, наиболее простым и ясным решением.
#include <iostream>
#include <sstream>

using namespace std;

void hexToString(const string &srcStr, string &destStr) {

    if ( srcStr.size() < 2 ) {
        return;
    }

    destStr.clear();

    stringstream ss;
    size_t asciiCode = 0;

    for ( size_t i=1; i<srcStr.size(); i+=2 ) {

        ss << hex << srcStr.substr(i-1, 2);
        ss >> asciiCode;

        destStr.push_back(static_cast<char>(asciiCode));

        ss.clear();
    }
}

int main() {

    string srcstr("48656C6C6F20776F726C6421");
    string deststr;

    hexToString(srcstr, deststr);

    cout << "\n" << deststr << "\n\n";

    //

    return 0;
}

Комментариев нет:

Отправить комментарий