码迷,mamicode.com
首页 > 其他好文 > 详细

eetcode 之String to Integer (atoi)(28)

时间:2016-05-23 13:20:37      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

字符串转为数字,细节题。要考虑空格、正负号,当转化的数字超过最大或最小是怎么办。

技术分享
 int atoi(char *str)
      {
          int len = strlen(str);
          int sign = 1;
          int num = 0;

          int i = 0;
          while (str[i] ==  && i < len)i++;

          if (str[i] == +)i++;
          else if (str[i] == -)
          {
              sign = -1;
              i++;
          }

          for (; i < len; i++)
          {
              if (str[i]<0&&str[i]>9)break;
              if (num>INT_MAX / 10 || (num==INT_MAX / 10 && (str[i] - 0)>INT_MAX % 10))
              {
                  return sign == -1 ? INT_MIN : INT_MAX;
              }
              num = num * 10 + str[i] - 0;
          }

          return num*sign;
      }
View Code

 

eetcode 之String to Integer (atoi)(28)

标签:

原文地址:http://www.cnblogs.com/573177885qq/p/5519567.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!