Q:

Converting a string with a hexadecimal representation of a number to an actual numeric value

I have a string like this:
"00c4"

And I need to convert it to the numeric value that would be expressed by the literal:
0x00c4

How would I do it?

A:

The strtol function (or strtoul for unsigned long), from stdlib.h in C or cstdlib in C++, allows you to convert a string to a long in a specific base, so something like this should do:
char *s = "00c4";
char *e;
long int i = strtol (s, &e, 16);
// Check that *e == '\0' assuming your string should ONLY
//    contain hex digits.
// Also check errno == 0.
// You can also just use NULL instead of &e if you're sure of the input.

