19-将十六进制字符串转成数字

╰+攻爆jí腚メ 2022-12-21 09:28 352阅读 0赞
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. //将十六进制字符串转成数字
  4. //只支持以数字开头或者0x或者0X开头
  5. int HexToint(const char *str)
  6. {
  7. int tmp = 0;//保存值
  8. if(*str=='0' && (*(str+1)=='x') || (*(str+1)=='X')) //跳过"0x"或者"0X"
  9. str+=2;
  10. while(isxdigit(*str))
  11. {
  12. if(isdigit(*str))//数字
  13. {
  14. tmp = tmp*16+*str-'0';
  15. }
  16. else if(isupper(*str))//大写字母
  17. {
  18. tmp = tmp*16+ *str-'A'+10;
  19. }
  20. else //小写字母
  21. {
  22. tmp = tmp*16 + *str-'a'+10;
  23. }
  24. str++;
  25. }
  26. return tmp;
  27. }
  28. int main()
  29. {
  30. int n= HexToint("123");
  31. printf("%d\n",n);
  32. return 0;
  33. }

发表评论

表情:
评论列表 (有 0 条评论,352人围观)

还没有评论,来说两句吧...

相关阅读