題目描述
將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。 數值為0或者字串不是乙個合法的數值則返回0
輸入描述:
輸入乙個字串,包括數字字母符號,可以為空
輸出描述:
如果是合法的數值表達則返回該數字,否則返回0
輸入例子:
+2147483647 1a33
輸出例子:
2147483647 0
解題思路:本題需要考慮幾個方面
1、如果非法輸入,除了結果輸出0,使用全域性g_nstatus來標識(進入函式初始化為不合法,最後合法再置為合法)
2、正負號處理
3、數值越界
1 #include 2using
namespace
std;
3class
solution ;
6int g_nstatus =kvalid;
7int strtoint(string
str)
19else
if(*cstr == '+'
)2023while(*cstr != '
\0')//
記得是*cstr
2437}38
else
3944}45
if(*cstr == '\0'
)4650}
51return (int
)num;52}
5354
};55
intmain()
56
劍指offer 49 把字串轉換成整數
題目 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入描述 輸入乙個字串,包括數字字母符號,可以為空 思路 如果有正負號,先處理正負號,再處理判斷是否為合法字元,思路看不懂可以看 附有注釋,請原諒博主我太懶 class solution e...
劍指offer系列(49) 把字串轉換成整數
題目描述 將乙個字串轉換成乙個整數,要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0 輸入乙個字串,包括數字字母符號,可以為空如果是合法的數值表達則返回該數字,否則返回0樣例輸出 2147483647 0 思路分析 題目描述過於簡單了,對於邊界條件,難道讓做題者猜測嗎 手...
劍指offer 49 把字串轉換成整數
將乙個字串轉換成乙個整數 實現integer.valueof string 的功能,但是string不符合數字要求時返回0 要求不能使用字串轉換整數的庫函式。數值為0或者字串不是乙個合法的數值則返回0。輸入描述 輸入乙個字串,包括數字字母符號,可以為空 輸出描述 如果是合法的數值表達則返回該數字,否...