如何将字符串转换为hex?

我有一个字符串0xFF ,是否有像atoi这样的函数读取该字符串并以uint32_t格式保存?

你也可以用这样的function来做。

 unsigned int foo(const char * s) { unsigned int result = 0; int c ; if ('0' == *s && 'x' == *(s+1)) { s+=2; while (*s) { result = result << 4; if (c=(*s-'0'),(c>=0 && c <=9)) result|=c; else if (c=(*s-'A'),(c>=0 && c <=5)) result|=(c+10); else if (c=(*s-'a'),(c>=0 && c <=5)) result|=(c+10); else break; ++s; } } return result; } 

例:

  printf("%08x\n",foo("0xff")); 
 #include  #include  #include  int main(void) { const char *hexValue = "0xFF"; char *p; uint32_t uv=0; uv=strtoul(hexValue, &p, 16); printf("%u\n", uv); return 0; } 
 const char *str = "0xFF"; uint32_t value; if (1 == sscanf(str, "0x%"SCNx32, &value)) { // value now contains the value in the string--decimal 255, in this case. }