把字串轉換成整數

2021-09-26 11:11:16 字數 1306 閱讀 1303

請你寫乙個函式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 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司...