题目
算法
http://www.cnblogs.com/grandyang/p/4125537.html
http://blog.csdn.net/feliciafay/article/details/17111231
- 若字符串开头是空格,则跳过所有空格,到第一个非空格字符,否则,返回0 
- 若第一个非空格是+/-号,返回0 
- 第一个不是数字返回0 
- 下一个是数字,则转化为整型,如果接下来不是数字,则返回目前结构 
- 考虑边界,超过了整型的范围,则用边界值替代当前值 
代码
class Solution{
public:
    int myAtoi(string str){
        if(str.empty())  return 0;
        int sign=1,base=0,i=0,n=str.size();
        while(i<n && str[i]==' ')  ++i;
        if(str[i]=='+' || str[i]=='-'){
            sign=(str[i+1]=='+')?1:-1;
        }
        while(i<n && str[i]>='0' && str[i]<='0'){
            if(base>INT_MAX/10 || (base==INT_MAX/10 && str[i]-'0'>7)){
                return (sign==1)? INT_MAX:INT_MIN;
            }
            base=10*base+(str[i++]-'0');
        }
        return base*sign;
    }
};