CodingInterview-把字符串转换成整数

这个问题比较基础,主要要考虑字符串为空、正负符号、int 溢出以及出现特殊字符的情况。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution {
public:
int StrToInt(string str) {
if(str.size()<=0) return 0;
int index=0;
long result=0;
int signal=1;
if(str[index]=='+'){
index++;
}else if(str[index]=='-'){
signal=-1;
index++;
}
for(;index<str.size();index++){
char tchar=str[index];
if(tchar<'0'||tchar>'9') return 0;
result=result*10+(long)(tchar-'0');
if((signal==1 && result>INT_MAX)||(signal==-1 && -result<INT_MIN)) return 0;
}
return signal*(int)result;
}
};