题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
/*
思路:
首先判断第一个字符是否为+,-
如果是则用flag保存下来,再从第二个字符依次判断是否是数字,是要发现存在不是数字的字符直接返回0;
如果不是,则从第一个字符开始。
*/
class Solution {
public:
int StrToInt(string str) {
int res = 0;
int i = 0;
int flag = 1;
if(str[0] == '-'){
i++;
a = -1;
}
if(str[0] == '+')
i++;
for(;i<str.length();i++){
if(str[i]<'0' || str[i]>'9')
return 0;
else{
res = res*10 + str[i] - '0';
}
}
return res*a;
}
};