方式一
int main(void)
{
char *str = "0x123";
int data;
sscanf(str, "%x", &data);
printf("%#x\n", data);
return 0;
}
方式二
int htoi(const char *buf)
{
int result = 0;
int tmp = 0;
int len, i;
len = strlen(buf);
for (i = 0; i < len; i++)
{
if(*buf >= 'A' && *buf <= 'F')
tmp = *buf - 'A' + 10;
else if (*buf >= 'a' && *buf <= 'f')
tmp = *buf - 'a' + 10;
else if (*buf >= '0' && *buf <= '9')
tmp = *buf - '0';
result *= 16;
result += tmp;
buf++;
}
return result;
}