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 == '' 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.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…