自己實現的atoi函式

2021-06-22 07:18:19 字數 636 閱讀 4886

不多說,直接上**

#include

#include

#include

int _atoi(const char *str, int len)

int value = 0;

int sign = 1;

const char *ptr = str;

const char *end = str + len;

//跳過開頭的空白符

while((ptr < end) && isspace(*ptr))

if( ptr == end )

//符號位判斷,只要帶"-"就是負數,帶"+",不帶符號或其他的都認為是1

sign = ('-' == *ptr) ? -1 : 1;

//帶符號位的需要跳過符號位

if('-' == *ptr || '+' == *ptr)

while(ptr < end)

value = value * 10 + *ptr - '0';

++ptr;

}if(-1 == sign)

return value;

}int main( int argc, char *argv )

return 0;

}

自己實現乙個 atoi 函式

情況一 輸入的字元包含不是數字字元的字元?例如 123adc4 針對這種情況,我們只要加上判斷就行了,只要遇到不是數字字元的直接返回。情況二 如果在數字字元前面有正負號又該怎麼辦?例如 123 123 針對這種情況,我們再加上判斷,判斷字串的第乙個字元是不是正負號,並用乙個標記位flag記錄正負。情...

atoi函式的實現

atoi函式的實現 寫這個函式的實現的原因很簡單,而且也很容易,直接抄襲的庫中的原始碼。因為有朋友面試的時候遇到了,前幾天乙個哥們面intel的時候也被問到了,巧合的是今天看廣聯達的面試題再次遇到。一周之內看到三次,讓我不得不重視一下啊,畢竟自己也要開始面試題呀面試題了!其實這個函式比較容易實現,不...

atoi函式的實現

atoi函式的實現 寫atoi函式的時候需要注意一下幾點 1.字串前的空白 2.字串所表示數值的正負號 3.結束條件,遇到非數字或者字元 0 結束 4.考慮溢位,分別與int值所能表示的最大 0x7fffffff 和最小值 0x8000000 進行比較 5.考慮異常輸入情況下,用全域性變數valid...