把字串轉化成整數

2021-08-20 07:26:37 字數 857 閱讀 3135

這道題看似很簡單,實現其基本功能,大部分人都能用10行**之內的**解決。

...

while(*str)

...

但是,當我們要把很多特殊的情況即測試用例都考慮進去,卻不是一件容易的事。

比如:空指標、空字串「」、正負號、溢位等方方面面的測試用例都考慮到,並在寫**時對這些特殊的輸入都定義好合理的輸出,

#define _crt_secure_no_warnings 1

#include

#include

#include

#include

#include

enum state;

int status = invalid;//定義乙個全域性變數區分是合法輸入("0")、不合法輸入(空字串)返回的0

int strtoint(const char *str)

if (*str == '\0')

return

0;//空字串"",非法

else

if (*str == '+')

str++;

while (*str)

}else

return (int)sum;

str++;

}status = valid;

return (int)sum;

}}int main()

總結:

功能測試(輸入的字串表示正數、負數和0)

邊界值測試(最大的正整數、最小是負整數)

特殊輸入測試(輸入字串為null指標、輸入字串為空字串、輸入的字串中有非數字字元等)

字串轉化成整數

看起來容易,但是有好多需要考慮到邊界條件。比如1.如果含有正負號或者非數字字元怎麼辦?2.最大正整數和最小負整數以及溢位 3.輸入的字元不能轉換成整數的時候,應該如何處理錯誤 所以其實還是比較複雜。不要看到題目就傻呵呵的寫了。js 中有封裝好的parseint,但是傳入的引數要注意 parseint...

劍指offer 把字串轉化成整數

將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入乙個字串,包括數字字母符號,可以為空 如果是合法的數值表達則返回該數字,否則返回0。字串從頭開始遍歷,判斷第乙個字元是 或 來確定正負值,後續需要判斷char是否再0到9的ascii碼之間,需...

整數轉化成字串 字串轉換為整數

整數轉化成字串 字串轉換為整數 整數轉化成字串 char inttostr int num,char str temp i 0 字串結束標誌 i i 1 回到temp最後乙個有意義的數字 while i 0 str j 0 字串結束標誌 return str 字串轉換為整數,僅考慮十進位制,不考慮非...