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

leetCode.008 String to Integer (atoi)

时间:2015-07-19 14:49:58      阅读:95      评论:0      收藏:0      [点我收藏+]

标签:

题意

将一个含数字的字符串转换成int

思路

实现并不困难,主要考虑各种情况。

 

1.字符串是不是空字符串;

2.字符串带空格或其他字符怎么办;

3.带正负号的处理;

4.字符串中的数超过int型的范围怎么办(int 范围:-2147483648~2147483647   0x80000000~0x7fffffff)

 

 1 int myAtoi(char* str) {
 2     int len=strlen(str);
 3     int flag=1,i=0;
 4     long long ans=0;
 5     if(len==0)
 6         return 0;
 7     else if(len==1)
 8     {
 9         if(str[0]>=0 && str[0]<=9)
10             return str[0]-0;
11         else return 0;
12     }
13     else
14     {
15         int i=0;
16         while(str[i]== ) i++;   //前面的空字符串跳过
17         if(str[i]==-) {flag=-1;i++;}
18         else  if(str[i]==+) {flag=1;i++;}
19         else if(str[i]>=0 && str[i]<=9) {flag=1;}
20         while(str[i]!=\0)
21         {
22             if(str[i]>=0 && str[i]<=9)
23             {
24                 ans=ans*10+str[i]-0;i++;
25                 if(flag*ans>INT_MAX) { return INT_MAX;break;}
26                 else if(flag*ans<=INT_MIN){return INT_MIN;break;}
27             }
28             else{return ans*flag;break;} //如果遇到非数字的字符串,后面的停止扫描
29     
30         }
31         return (int)(ans)*flag;
32     }
33 }

 

leetCode.008 String to Integer (atoi)

标签:

原文地址:http://www.cnblogs.com/madking/p/4658529.html

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