I have a string like this:
\"00c4\"
And I need to convert it to the numeric value that would be expressed by the literal:
0
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.