把字符串转换成整数

来源:互联网 发布:mac world破解版 编辑:程序博客网 时间:2024/06/01 14:14

题目描述
将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
示例1
输入
+2147483647
1a33
输出
2147483647
0

class Solution {public:    int StrToInt(string str) {       //长度为0返回0       if(str.size()==0)            return 0;        //判断是否包含非法字符            for(int i=0;i<str.size();i++)        {            if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))            {                return 0;            }        }        int num=0;        int a=10;        for(int i=0;i<str.size();i++)        {            if(str[i]=='+'||str[i]=='-')//主要是用来忽略掉str[0]表示的正负号问题            {                 continue;            }            else            {                num=num*a+(str[i]-48);            }        }        //根据正负返回值        if(str[0]=='+'||(str[0]>='0'&&str[0]<='9'))            return num;        if(str[0]=='-')            return num*(-1);        else             return 0;    }};