把字符串转换成整数

来源:互联网 发布:淘宝美工作品欣赏 编辑:程序博客网 时间:2024/06/06 04:47

题目

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

思路

主要是注意正负号,如果可能有正负号,只能在第一位(并且此时字符串的长度不能为1)。

参考代码

class Solution{public:    int StrToInt(string str)    {        bool negative = false;        int length = str.length(), res = 0;        if (!length) return 0;        if (length == 1)        {            if (str[0] > '9' || str[0] < '0') return 0;        }        for (int i = 0; i < length; ++i)        {            if (!i && (str[i] == '+' || str[i] == '-'))            {                if (str[i] == '-')                {                    negative = true;                }            }            else            {                if (str[i] < '0' || str[i] > '9') return 0;                else                {                    res = res * 10 + (str[i] - '0');                }            }        }        return negative ? -res : res;    }};
原创粉丝点击