程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 自己實現的atof()和atoi()代碼

自己實現的atof()和atoi()代碼

編輯:C++入門知識

//函數名: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=='-')//判斷是否是負數
    {
        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=='-')//判斷是否是負數
    {
        ispnum=false;
        sptr++;
    }
    else if(*sptr=='+')//判斷是否為正數
    {
        sptr++;
    }

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

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


摘自 C小加

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved