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++;
}