青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

C小加

厚德 博學 求真 至善 The bright moon and breeze
posts - 145, comments - 195, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

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

Posted on 2012-02-24 16:42 C小加 閱讀(8348) 評論(5)  編輯 收藏 引用 所屬分類: 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);
}

Feedback

# re: 自己實現的atof()和atoi()代碼[未登錄]  回復  更多評論   

2012-02-24 19:53 by ithaca
沒有處理前置的空白,這個功能,標準的atoi都是要有的。

# re: 自己實現的atof()和atoi()代碼  回復  更多評論   

2012-02-25 21:24 by ko
正數不一定非要用 + 占位吧

# re: 自己實現的atof()和atoi()代碼  回復  更多評論   

2012-02-27 09:10 by C小加
遇到+了怎么辦@ko

# re: 自己實現的atof()和atoi()代碼  回復  更多評論   

2013-11-09 11:25 by danielyin
atoi沒有考慮溢出的問題。

# re: 自己實現的atof()和atoi()代碼  回復  更多評論   

2014-09-05 22:27 by memristor
定義函數 double atof(const char *nptr);
函數說明 atof()會掃描參數nptr字符串,跳過前面的空格字符,直到遇上數
字或正負符號才開始做轉換,而再遇到非數字或字符串結束時
('\0')才結束轉換,并將結果返回。參數nptr字符串可包含正負
號、小數點或E(e)來表示指數部分,如123.456或123e-2。
返回值 返回轉換后的浮點型數。
#include <stdio.h>
#include <ctype.h>
#include <math.h>
#include <stdlib.h>
#include <assert.h>


double myatof(const char*s)
{
assert(s!=NULL);
double val,val2,power;
int sign,sign2,i;
//去掉字符串中的空格
for(i=0;isspace(s[i]);++i)
;
//判斷正負數 ,并將i指向下一個位置
sign = (s[i] == '-') ? -1:1;
if(s[i] == '+' || s[i] == '-')
i++;
//取浮點數的整數部分
for(val=0.0;isdigit(s[i]) && s[i] !=0;++i)
val = 10*val+s[i]-'0';
//取小數點
if(s[i] == '.')
i++; //后一個位置
//取小數點后面數
for(power=1.0;isdigit(s[i]) && s[i] !=0;++i)
{
val = 10*val+s[i]-'0';
power*=10; //float 放大的倍數
}
val=sign*val/power;

//如果有e的話處理e后面的數字
if(s[i]=='e' || s[i]== 'E'){
i++;
sign2 = (s[i] == '-')?-1:1;
if(s[i] == '+' || s[i] == '-')
i++;
for(val2=0.0;isdigit(s[i]) && s[i] !=0;++i){
val2 = 10*val2+s[i]-'0';
}
if(sign2 == -1)
return val/pow(10,val2);
else
return val*pow(10,val2);
}
return val;
}
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲国产精品久久91精品| 亚洲天堂成人在线观看| 久热这里只精品99re8久| 欧美中文字幕第一页| 香蕉久久久久久久av网站 | 亚洲一区二区三区视频| 一本色道久久综合亚洲精品小说| 亚洲精品国产欧美| 亚洲第一狼人社区| 欧美色欧美亚洲高清在线视频| 欧美日韩二区三区| 国产精品国产三级国产aⅴ浪潮| 国产精品手机在线| 激情成人中文字幕| 一区二区三区欧美视频| 亚洲欧美日韩精品久久久| 久久久久一区二区三区| 亚洲国产高清在线| 亚洲国产日韩欧美在线99| 亚洲精品一二| 午夜精品福利视频| 欧美本精品男人aⅴ天堂| 久久国产精品99国产精| 久久综合99re88久久爱| 日韩网站在线观看| 久久久精品性| 欧美私人啪啪vps| 影音国产精品| 亚洲欧美视频一区| 亚洲国产精品久久久| 午夜欧美精品| 欧美精品在线一区| 在线免费观看日本一区| 亚洲欧美成人精品| 91久久国产精品91久久性色| 欧美中文在线字幕| 国产精品一区二区三区久久| 日韩一区二区精品葵司在线| 久久国产一区二区| 一区二区三区精品在线| 欧美精品一区三区| 亚洲国产精品v| 久久久久久久久久久久久久一区 | 欧美成人午夜剧场免费观看| 亚洲免费成人av电影| 午夜精彩国产免费不卡不顿大片| 欧美成人免费一级人片100| 国产日韩亚洲欧美| 亚洲一区二区三区四区在线观看| 亚洲国产成人久久综合| 久久久www| 狠狠色狠狠色综合日日小说| 欧美在线观看视频在线 | 亚洲日本国产| 久久夜色精品亚洲噜噜国产mv| 国产精品乱码| 亚洲欧美韩国| 亚洲色诱最新| 欧美日韩一区高清| 亚洲无玛一区| 亚洲一区二区三区高清| 国产精品美女主播| 欧美一区二区三区免费看| 亚洲私人影院在线观看| 国产精品国产三级国产专播精品人 | 亚洲永久免费视频| 国产精品久久久久一区二区三区| 一区二区日韩| 亚洲视频一区二区| 国产女同一区二区| 久久久久在线观看| 久久久久久成人| 亚洲国内自拍| 亚洲精品看片| 国产精品久久久久久久久久免费看| 亚洲午夜小视频| 亚洲伊人一本大道中文字幕| 国产日韩欧美在线视频观看| 久久黄金**| 久久视频在线免费观看| 日韩一区二区精品在线观看| 亚洲图片欧洲图片av| 国产一区二区av| 欧美激情区在线播放| 欧美日韩亚洲一区三区| 欧美在线亚洲在线| 老司机精品久久| 一区二区三区视频在线播放| 亚洲综合精品四区| 亚洲丁香婷深爱综合| 一本久道久久久| 伊人久久亚洲热| 艳妇臀荡乳欲伦亚洲一区| 国产午夜亚洲精品羞羞网站| 欧美激情一级片一区二区| 国产精品久久久久久久久免费| 欧美一级黄色网| 国产丝袜一区二区三区| 免费亚洲网站| 欧美日韩一区二区欧美激情| 久久久精品免费视频| 欧美激情网友自拍| 久久久www| 欧美精品导航| 久久久亚洲一区| 欧美性开放视频| 欧美激情国产日韩| 国内成人精品视频| 亚洲图片欧美午夜| 日韩一二三区视频| 欧美在线亚洲| 亚洲一区中文| 中文一区二区| 猛男gaygay欧美视频| 亚洲欧美日本伦理| 欧美黑人国产人伦爽爽爽| 久久久综合视频| 国产精品家教| 99天天综合性| 日韩亚洲欧美成人| 免费亚洲电影在线| 久久精品人人做人人爽| 欧美日韩免费在线观看| 亚洲国产精品va在看黑人| 激情五月***国产精品| 亚洲欧美不卡| 亚洲欧美另类综合偷拍| 欧美吻胸吃奶大尺度电影| 最新日韩在线视频| 亚洲精品欧美日韩专区| 你懂的一区二区| 欧美国产欧美综合| 在线免费观看成人网| 久久久久国产一区二区三区四区 | 亚洲在线国产日韩欧美| 欧美日韩国产色综合一二三四| 亚洲大胆人体视频| 亚洲电影在线看| 久久综合久久久久88| 另类欧美日韩国产在线| 在线日本欧美| 美女视频网站黄色亚洲| 欧美激情片在线观看| 亚洲精品麻豆| 欧美美女bbbb| 日韩一区二区久久| 午夜精品福利一区二区三区av| 国产精品黄色| 欧美中文字幕久久| 欧美xx视频| 亚洲美女一区| 国产精品国产三级国产普通话三级 | 欧美成人性生活| 亚洲人在线视频| 亚洲制服av| 国产一区欧美日韩| 麻豆精品网站| 99re热精品| 国产精品久久久久久久久果冻传媒| 性欧美精品高清| 久久久久久久精| 亚洲国产专区| 欧美大片在线影院| 亚洲天堂网站在线观看视频| 欧美一区免费| 亚洲国产美国国产综合一区二区| 欧美精品亚洲| 亚洲综合电影| 欧美激情四色| 久久国产黑丝| 夜夜爽av福利精品导航| 国产日韩精品入口| 欧美激情精品久久久久久免费印度 | 麻豆国产va免费精品高清在线| 亚洲美女视频在线免费观看| 国产美女精品在线| 欧美精品免费视频| 欧美在线啊v一区| 日韩午夜电影av| 久久夜色精品国产噜噜av| 夜夜夜精品看看| 红桃视频一区| 国产精品久久久久免费a∨大胸| 麻豆精品传媒视频| 欧美一区影院| 中文欧美日韩| 亚洲高清资源综合久久精品| 久久成人一区二区| 国产精品99久久99久久久二8| 亚洲国产精品一区二区www在线| 国产精品美女久久久浪潮软件| 欧美风情在线| 久久一二三区| 欧美专区在线观看| 亚洲欧美精品一区| 99精品99久久久久久宅男| 欧美成人性网| 久久久中精品2020中文| 欧美在线啊v一区| 亚洲综合精品|