c语言实现字符串转换为十进制数字

阳光穿透心脏的1/2处 2022-12-10 10:12 300阅读 0赞
  1. int sysMyHex10(char *buf)
  2. {
  3. char *tempbuf = buf;
  4. char *startbuf = NULL;
  5. int start = 0;
  6. int ret = 0;
  7. int i = 0;
  8. int base = 1;
  9. if(buf == NULL)
  10. return 0;
  11. while(*tempbuf != '\0')
  12. {
  13. if(((*tempbuf >= '0') && (*tempbuf <= '9'))
  14. || ((*tempbuf == '-') && (start == 0)))
  15. {
  16. if(start == 0)
  17. {
  18. startbuf = tempbuf;
  19. }
  20. start = 1;
  21. }
  22. else
  23. {
  24. if(start == 1)
  25. break;
  26. }
  27. tempbuf++;
  28. }
  29. if(startbuf != NULL)
  30. {
  31. if(*startbuf == '-')
  32. {
  33. startbuf++;
  34. while(startbuf != tempbuf)
  35. {
  36. base = 1;
  37. for(i = 0; i < (tempbuf - startbuf - 1); i++)
  38. base = base * 10;
  39. ret = ret + (*startbuf - '0') * base;
  40. startbuf++;
  41. }
  42. return 0 - ret;
  43. }
  44. else
  45. {
  46. while(startbuf != tempbuf)
  47. {
  48. base = 1;
  49. for(i = 0; i < (tempbuf - startbuf - 1); i++)
  50. base = base * 10;
  51. ret = ret + (*startbuf - '0') * base;
  52. startbuf++;
  53. }
  54. return ret;
  55. }
  56. }
  57. return 0;
  58. }

发表评论

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

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

相关阅读