hlgl
hlgl

Reputation: 13

string to byte array

How do I input DEADBEEF and output DE AD BE EF as four byte arrays?

Upvotes: 1

Views: 5239

Answers (2)

GManNickG
GManNickG

Reputation: 503855

Sounds like you want to parse a string as hex into an integer. The C++ way:

#include <iostream>
#include <sstream>
#include <string>

template <typename IntType>
IntType hex_to_integer(const std::string& pStr)
{
    std::stringstream ss(pStr);

    IntType i;
    ss >> std::hex >> i;

    return i;
}

int main(void)
{
    std::string s = "DEADBEEF";
    unsigned n = hex_to_integer<unsigned>(s);

    std::cout << n << std::endl;
}

Upvotes: 2

user308405
user308405

Reputation: 1150

void hexconvert( char *text, unsigned char bytes[] )
{
    int i;
    int temp;

    for( i = 0; i < 4; ++i ) {
        sscanf( text + 2 * i, "%2x", &temp );
        bytes[i] = temp;
    }
}

Upvotes: 4

Related Questions