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; } };