Here’s my issue:
I have written a function to detect if a string is hex based off of the “0x####” format:
int lc3_hashex(char *str)
{
int val = 0;
char *to;
to = strndup(str+2, 10);
val = sscanf(to, "%x", &val);
if (val)
{
return val;
}
return 0;
}
Assuming the parameter is of the form “0x####”, it returns the decimal version of the post “0x” numbers. But is there any built in way (or a way I am just overseeing) to get the integer value of the hexidecimal number “0x4000” as opposed to the integer value of “4000”?
Thanks.
Use strtol from
stdlib.hand specify the base as 16.The only downside is that this function returns 0 upon failure, so you’ll want to check to make sure the input to it is not 0.