zoukankan      html  css  js  c++  java
  • 自己实现的atof()和atoi()代码 (转)

    http://www.cppblog.com/cxiaojia/archive/2012/02/24/166436.html

    (添加了判空处理)

    //函数名:myatof
    //功能:把字符串转化成double浮点型
    //名字来源:my array to floating point numbers  
    //函数说明:接收一个字符串判断第一个字符的符号,没有符号默认为正值,然后对剩余字符串进行转换,//遇到\0结束,最后返回一个double

    double myatof(const char* sptr)
    {
        double temp=10;
        bool ispnum=true;
        double ans=0;

        if(sptr==NULL)

              return 0.0;
        if(*sptr=='-')//判断是否是负数
        {
            ispnum=false;
            sptr++;
        }
        else if(*sptr=='+')//判断是否为正数
        {
            sptr++;
        }

        while(*sptr!='\0')//寻找小数点之前的数
        {
            if(*sptr=='.'){ sptr++;break;}
            ans=ans*10+(*sptr-'0');
            sptr++;
        }
        while(*sptr!='\0')//寻找小数点之后的数
        {
            ans=ans+(*sptr-'0')/temp;
            temp*=10;
            sptr++;
        }
        if(ispnum) return ans;
        else return ans*(-1);
    }

    //函数名:myatoi
    //功能:把字符串转化成int整型
    //名字来源:my array to integer  
    //函数说明:接收一个字符串判断第一个字符的符号,没有符号默认为正值,然后对剩余字符串进行转换,//遇到\0结束,最后返回一个int

    int myatoi(const char* sptr)
    {

        bool ispnum=true;
        int ans=0;

        if(sptr==NULL)

              return -1;


        if(*sptr=='-')//判断是否是负数
        {
            ispnum=false;
            sptr++;
        }
        else if(*sptr=='+')//判断是否为正数
        {
            sptr++;
        }

        while(*sptr!='\0')//类型转化
        {
            ans=ans*10+(*sptr-'0');
            sptr++;
        }

        if(ispnum) return ans;
        else return ans*(-1);
    }

  • 相关阅读:
    CentOS 7中为Yum设置代理
    在 .NET Core项目中使用UEditor图片、文件上传服务
    Android开发:通过 webview 将网页打包成安卓应用
    ElasticSearch:组合查询或复合查询
    ElasticSearch:常用的基础查询与过滤器
    SpringBoot:Java High Level REST Client 搜索 API
    SpingBoot:整合Elasticsearch7.2.0
    Linux:oracle11.2.0dbca静默建库
    Docker:跨主机通信
    Mysql无法启动情况下,如何恢复数据?
  • 原文地址:https://www.cnblogs.com/wb118115/p/2761730.html
Copyright © 2011-2022 走看看