程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 指針-atoi函數代碼怎麼理解?

指針-atoi函數代碼怎麼理解?

編輯:編程綜合問答
atoi函數代碼怎麼理解?

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);

}
有注釋還是看不太懂,這個函數大概是什麼思路?

最佳回答:


函數實現功能是將一個字符串轉換成整數。
如:“-12345” 轉換成 -12345
轉換過程:
從左到右依次遍歷每一個字符。首先判斷是正數還是負數(ispnum做標記,true表示整數,false表示負數),接著繼續遍歷,“12345”
就相當於1*10000 + 2*1000 + 3*100 + 4*10 + 5
代碼:

while(*sptr!='\0')//類型轉化
{
     ans=ans*10+(*sptr-'0');
     sptr++;
 }
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved