zoukankan      html  css  js  c++  java
  • JZ49:把字符串转换成整数

    将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0

    解题思路

    • 简单判断
    • 字符串中包含字符、数字、空格。首先应该去掉前导、后导空格。

    上代码(C++香)

    int StrToInt(string str) {
        int length = str.length();
        if(length <= 0)
            return 0;
        long long ans = 0;
        int flag = 1;
    
        // 首先应该排除空格(允许前面后面有空格)
        int m = 0;
        while (m < length && str[m] == ' ')
            ++m;
        int k = length - 1;
        while (k >= 0 && str[k] == ' ')
            --k;
        for(int i = m; i <= k; i++){
            if(!(str[i] >= '0' && str[i] <= '9')){
                if(i == m && str[i] == '+')
                    flag = 1;
                else if(i == m && str[i] == '-')
                    flag = -1;
                else
                    return 0;
                continue;
            }
            // 此处应该加一个判断数值是否越界int
            ans = ans * 10 + (str[i] - '0');
            //cout<<"ans = "<<ans<<endl;
        }
        return flag * ans;
    
    }
    
  • 相关阅读:
    centos7安装kde桌面
    centos7安装NVIDIA驱动
    15日报
    11日报
    14日报
    奖励加分
    课程建议
    13日报
    12日报
    每日总结1213
  • 原文地址:https://www.cnblogs.com/flyingrun/p/13531560.html
Copyright © 2011-2022 走看看