JZ49 把字符串转换成整数*
题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
思路
遍历字符串中的每一个字符,如果字符-'0'字符在0~9之间,则就是数值,那就*10+res保存起来;否则返回0
这里是看见题目中的+才想到需要进行正负数的判断的,判断方式很简单,看第一个字符
代码
class Solution {
public:
int StrToInt(string str) {
int i=0;
int res=0;
int temp;
bool flag=0; //正负号的标志,默认为正,如果字符串第一个是负号就变为1
if(str[0]=='+')
i=1;
else if(str[0]=='-')
{
i=1;
flag=1;
}
for(;i<str.size();i++)
{
temp=str[i]-'0';
if(temp<0||temp>9)
return 0;
else
res=res*10+temp;
}
if(flag)
return (0-res);//是负数
else
return res;
}
};
查看20道真题和解析
