不多說,直接上**
#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...