請你寫乙個函式strtoint,實現把字串轉換成整數這個功能。
當然,不能使用atoi或者其他類似的庫函式。
樣例輸入:「123」
輸出:123
注意:你的函式應滿足下列條件:
忽略所有行首空格,找到第乙個非空格字元,可以是 『+/−』 表示是正數或者負數,緊隨其後找到最長的一串連續數字,將其解析成乙個整數;
整數後可能有任意非數字字元,請將其忽略;
如果整數長度為0,則返回0;
如果整數大於int_max(2^31 − 1),請返回int_max;如果整數小於int_min(−2^31) ,請返回int_min;
解法:就是模擬法從前往後過濾字元
首先找到第乙個不是空格的index,濾掉空格
然後判斷是+還是-,如果是-,則作標記,表明此樹為負
最後字串逐個匹配0 到 9 的數字,如果不是數字則略過
用long 乙個變數來儲存數字
每次*10來空出個位數讓新的數字加
得到數字後
如果之前負數的標記為真,答案為*-1;
如果大於int的最大值就反回int的最大值
如果小於int的最小值就返回int的最小值
public
intstrtoint
(string str)
int k =0;
while
(str.
charat
(k)==
' '&& k <= str.
length()
-1)boolean is_minus =
false;if
(str.
charat
(k)==
'+') k++
;else
if(str.
charat
(k)==
'-')
long number =0;
while
(k <= str.
length()
-1&& str.
charat
(k)>=
'0'&& str.
charat
(k)<=
'9')
if(is_minus ==
true)if
(number>=max )
return
2147483647;if
(numberreturn
-2147483648
;return
(int
)number;
}
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345 分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用作...
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用...
把字串轉換成整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數 345。分析 這道題儘管不是很難,學過 c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...