1.字符串转换整数
注意:还是要注意 像昨天的问题一样 对于整数的按位加和 必须将res定义成 long(long int)否则就会报错
还有就是设置一个符号位 判断是正负
还有 分情况讨论首位非空字符和后面的(非首位)字符
首位为正负号,以及为数字的
非首位的,为数字则加,非则停止
class Solution {
public:
int myAtoi(string str) {
int len=str.size();
int flag=0;
long int res=0;
for(int i=0;i<len;i++){
if(flag==0){
if(str[i]==' '){continue;}
else if(str[i]=='+'){flag=1;}
else if(str[i]=='-'){flag=-1;}
else if(str[i]>='0'&& str[i]<='9'){
flag=1;
res=str[i]-'0';
}
else {return 0;}
}
else{
if(str[i]>='0'&& str[i]<='9'){
res=10*res+str[i]-'0';
if(res*flag>INT_MAX){return INT_MAX;}
if(res*flag<INT_MIN){return INT_MIN;}}
else {return flag*res;}
}
}
return flag*res;
}
};