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

String to Integer (atoi)

时间:2015-04-05 15:56:47      阅读:116      评论:0      收藏:0      [点我收藏+]

标签:

class Solution {
public:
    int atoi(string str) {
        long long result=0;
        int flag=1;
        int i=0;
        while(str[i]==‘ ‘&&str[i]!=‘\0‘){
            i++;
        }
        if(str[i]==‘-‘&&str[i]!=‘\0‘){
            flag=0;
            i++;
        }else if(str[i]==‘+‘&&str[i]!=‘\0‘){
            i++;
        }
        for(;str[i]!=‘\0‘;i++){
            if(str[i]>=‘0‘&&str[i]<=‘9‘){
                
                
                if(flag){
                    result=result*10+str[i]-‘0‘;
                    if(result>0x7FFFFFFF)
                    return 0x7FFFFFFF;
                }else{
                    result=result*10-(str[i]-‘0‘);
                    if(result<(signed int)0x80000000)
                    return 0x80000000;
                } 
            }else break;
        }
        return (int)result;
        
        
    }
};

 注意:

1、字符前的空格处理;

2、无效字符输入

3、整数越界问题,此处使用了小技巧,将返回类型定义为long long。再分开判断是否越界

32位整数范围((signed int) 0x80000000~0x7FFFFFFF) 

String to Integer (atoi)

标签:

原文地址:http://www.cnblogs.com/qiaomu/p/4394163.html

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