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

前端 未结 6 914
渐次进展
渐次进展 2020-12-21 10:49

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         


        
6条回答
  •  無奈伤痛
    2020-12-21 10:55

    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.
    

提交回复
热议问题