题目描述 [把字符串转换成整数]
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
输入描述
输入一个字符串,包括数字字母符号,可以为空
输出描述
如果是合法的数值表达则返回该数字,否则返回0
解题思路
真的简单的不能再简单了
- 从头开始遍历字符串,首先判断是不是空,如果是空什么也不做
- 然后判断是否是正负号,如果是则设置相应的符号
- 然后判断是否是数字,不是则返回0,如果是则加上
注意:要判断是否溢出
代码
class Solution {
public:
int StrToInt(string str) {
int flag=1;
int num=0;
int i=0;
while(i<str.size()){
if(str[i]=='+'||str[i]==' ') ;
else if(str[i]=='-') flag=-1;
else if(isdigit(str[i])){
num = num*10 + str[i]-'0';
if((flag>0&&num>INT_MAX)||(flag<0&&num<INT_MIN)) return 0;
}else return 0;
i++;
}
return num*flag;
}
};











网友评论