标签:
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)
标签:
原文地址:http://www.cnblogs.com/qiaomu/p/4394163.html