自己实现的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);
}
轉載于:https://www.cnblogs.com/wb118115/archive/2012/11/08/2761730.html
總結
以上是生活随笔為你收集整理的自己实现的atof()和atoi()代码 (转)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分组中查询不符合条件的组
- 下一篇: C++为什么使用指针---堆和栈的区别