• atoi将字符装换为数字


    伪代码思路:

    第一步:检测输入字符串是否为空字符串;

    if(str.empty()) return 0;

    第二步:

    检索有效输入:

    int i=0;

    while(str[i]==' '&&str[i]!='')

    i++;

    循环后i所在的位置即为有效字符所在的位置。

    if(str[i]=='')

    {return 0};

    第三步:检查数字符号:

    if(str[i]=='+')正i++

    if(str[i]=='-')  负i++

    //开始转换;

    int max=ox7fffffff //表示最大的int 32字节符号为为0,表示正数;

    int min=ox800000000;//表示下届 负数;

    long sum =0;

    while( str[i]!='')

    {

    if(str[i]>'0'&&str[i]<'9')

    {

    sum=sum*10+signal*(str[i]-'0');  //字符数字对应相减,其实对应的是它们的码值相减,差值为对应的数值之差;

    }

    esle

     return sum;

    //第五步:时刻检测数字是否溢出:

    if (sum > max || sum < min)   //溢出处理 
                    return sum > 0 ? max : min; 

    ++i;

    }

    return sum;

    class Solution {
    public:
        int myAtoi(string str) {
            if (str.empty())   //空字串 
               return 0; 
             
            //忽略前缀空格 
            int i = 0; 
            while (str[i] != '' && str[i] == ' ') 
              ++i; 
               
            if (str[i] == '') 
              return 0; 
             
            int max = 0x7fffffff; 
            int min = 0x80000000; 
            int signal = 1; 
              
            //处理+、-号 
            if (str[i] == '+') 
            { 
                signal = 1; 
                ++i; 
            } 
            else if (str[i] == '-') 
            { 
                signal = -1; 
                ++i; 
            } 
             
            //转换整数 
            long long sum = 0; 
            while (str[i] != '') 
            { 
                if (str[i] >= '0' && str[i] <= '9') 
                     sum = sum * 10 + signal * (str[i] - '0'); 
                else  
                    return sum; 
                if (sum > max || sum < min)   //溢出处理 
                    return sum > 0 ? max : min; 
                ++i; 
            } 
            return sum; 
        }
    };

  • 相关阅读:
    【转】异常处理模块
    【转】整套完整安全的API接口解决方案
    百度地图API功能集锦
    VS2015 使用Razor编写MVC视图时,Razor智能提示消失,报各种红线解决方案。
    算法初涉-解决比9*9数独更复杂的结构
    SQL时间相关
    ubuntu 安装
    dwa 设置多个目标点,倒车设计
    ros 信号周期的简单实现
    C++学习记录 第一章:初始
  • 原文地址:https://www.cnblogs.com/mmziscoming/p/5751869.html
Copyright © 2020-2023  润新知