劍指offer 字串轉換為整數

2021-07-31 09:13:46 字數 844 閱讀 5177

在c語言中,有乙個函式我們可能不經常使用,那就是字串轉換為整數函式 atoi()

atoi (表示 ascii to integer)是把字串轉換成整型數的乙個函式

atoi( ) 函式會掃瞄引數 nptr字串,跳過前面的空白字元(例如空格,tab縮排等,可以通過isspace( )函式來檢測),直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時('\0')才結束轉換,並將結果返回。如果 nptr不能轉換成 int 或者 nptr為空字串,那麼將返回 0

當字串為空,或者輸入的字串是『0』,atoi()是通過乙個全域性變數來區分的,如果非法輸入,返回0,並把這個全域性變數設為乙個特殊標記,如果輸入的是『0』,返回0,不會設定全域性變數,這樣就可以區分得到的0值得情況

enum typename

;int get_typename = kvalid; //全域性變數來定義標記

int strtoint(const char* str)

if (*str != '\0')

}return num;

}long long strtointcore(const char * src, int minus)

src++;

} else

}if (*src == '\0')

return num;

}

測試用例

1、輸入的字串表示正數,負數,0

2、邊界測試(最大正整數,最小負整數)

3、特殊輸入測試(輸入字串為null,輸入字串為空字串,輸入的字串有非法數字字元)

劍指offer 把字串轉換為整數

題目要求 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0。這道題的難點在於溢位判斷,但令人遺憾的是溢位的算例似乎取消了,不進行溢位判斷依然能通過除錯。本文的解決方案未進行溢位判斷。這道題比較簡單,先看第乙個元素是正負號還是數字,確定標誌位。然後...

劍指offer 字串轉換整數

對於這個問題,本題考查的實際上就是字串轉換成整數的問題,或者說是要你自行實現atoi函式。那如何實現把表示整數的字串正確地轉換成整數呢?以 345 作為例子 當我們掃瞄到字串的第乙個字元 3 時,由於我們知道這是第一位,所以得到數字3。當掃瞄到第二個數字 4 時,而之前我們知道前面有乙個3,所以便在...

劍指offer 將字串轉換為數字

將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入乙個字串,包括數字字母符號,可以為空如果是合法的數值表達則返回該數字,否則返回0示例1 2147483647 1a332147483647 0 include include using na...