這是一道被我遺漏了好久的一道題,最近被考到了,才發現好像被自己遺漏了,再次記錄一下,就算查漏補缺吧。
atoi函式功能:用來將乙個字串轉換為整形。
該函式會從第乙個字元開始跳過前面的空格,直到遇到正負號才開始轉換,遇到非數字或『\0』結束轉換。如果不能轉換或是空字串就返回0。
首先我們先考慮需要用到的測試用例:
比如 正負數:「+1234」「-1234」
非數字:「abcd」
數字:「1234」
混合:「1234abcd」
用庫函式atoi測試一下結果:
下面是**:
#include
#include
#include
#include
#include
int my_atoi(const char *str)
else
if(*p=='+')
else
if(*p=='-')
while(*p>'0'&&*p
return sign*num;
}
return0;}
int main()
測試結果如下:
思路:首先要檢測空格跳過空格,其次檢測正號負號,將其記錄下來用來返回帶符號的結果,然後轉換字元,將單個字元減字元0就能轉換為數字,然後通過計算得出轉換結果,注意的是:不能用指標再來接受轉換後的結果,用指標來接受,不論是單個字元的結果還是最後的結果。
C語言 模擬實現atoi
題目 請程式設計寫程式實現字串到整數的轉換,例如輸出字串 12345 輸出整數12345.分析 不僅要考慮給的是字元字串,還要考慮空白字元,正負號,空字串,以及越界訪問問題 include include include include include enum state enum state s...
(C語言)模擬實現atoi函式
atoi函式 用法 將字串裡的數字字元轉換為整形數,然後返回整形值。注意事項 跳過前面的空格字元,遇到正負號或者數字開始轉換,直到遇到字串結束標誌 0 或非數字字元才結束轉換。用c語言模擬實現這個函式 vs2013 include include include include enum state...
模擬實現atoi
注意到細節問題 一 函式引數 1 形參虛const修飾 2 注意對形參指標判空 二 需要考慮到的細節 1 負數和0 注意區別傳入字元 0 和異常時返回值 2 空字串 3 溢位問題 4 輸入字串非非數字字元 int g flag 0 區別空串 long long strtodig const char...