题目:
class Solution { public: int StrToInt(string str) { //字符串->整数,串不合法返回0 int flag=1; int i=0; if(str[i]=='+') { i++; } else if(str[i]=='-') { i++; flag=-1; } int sum=0; while(str[i]!='\0') { while(str[i]==' ') { i++; } while(isdigit(str[i])) { sum=sum*10+str[i++]-'0'; if(sum*flag>INT_MAX) { return INT_MAX; } else if(sum*flag<INT_MIN) { return INT_MIN; } } //来到这说明不是数字了 if(str[i]=='\0') return sum*flag; else return 0; } return 0; } };