class Solution {
public:
int myAtoi(string s) {
int len=s.length();
long result=0;
int biao=0;
int fu=1;
for(int i=0;i<len;i++){
if( s[i]==' ' && biao==0 ){biao=0;}
else if( (s[i]=='+'||s[i]=='-') && biao==0 ){biao=1;fu=s[i]=='-'?-1:1;}
else if( (s[i]<='9'&&(s[i]>='0'))){biao=2;}
else{break;}
if(biao==2){
int num=s[i]-'0';
result=10*result+num;
if(result>=2147483647&&fu==1){result=2147483647;return result;}
if(result>2147483648&&fu==-1){result=-2147483648;return result;}
}
}
result=result*fu;
return result;
}
};
关于ascii码区分’ ‘,’0‘,’\0‘.
数字字符转int的一种方法: int num=s[i]-'0';
空格:空格键产生的字符,ascii码十进制:32
空字符:字符串结束标志‘\0’,为被动添加,ascii码十进制:0
字符0:ascii码十进制:48