8 字串轉整數

2021-10-05 14:35:00 字數 1497 閱讀 7299

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。

首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。接下來的轉化規則如下:

如果第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字字元組合起來,形成乙個有符號整數。

假如第乙個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成乙個整數。

該字串在有效的整數部分之後也可能會存在多餘的字元,那麼這些字元可以被忽略,它們對函式不應該造成影響。

注意:假如該字串中的第乙個非空格字元不是乙個有效整數字元、字串為空或字串僅包含空白字元時,則你的函式不需要進行轉換,即無法進行有效轉換。

在任何情況下,若函式不能進行有效的轉換時,請返回 0 。

思路:1.去空格

2判斷正符號

3.判斷溢位

如果字串開始是空格如何找到第乙個非空格字元

while

(ilength()

&&str.

charat

(i)==

' ')

判斷正負號。利用flag標記,1代表整數,-1代表負數

if

(ilength()

&&str.

charat

(i)==

'-')

if(ilength()

&&(str.

charat

(i)==

'+'||str.

charat

(i)==

'-')

)

判斷溢位,int型別的數值範圍為-2147483648~+2147483647

if

(res>integer.max_value/

10||

(res==integer.max_value/

10&&tem>7)

)

完整**:

class

solution

while

(ilength()

&&str.

charat

(i)==

' ')

if(ilength()

&&str.

charat

(i)==

'-')

if(ilength()

&&(str.

charat

(i)==

'+'||str.

charat

(i)==

'-')

)while

(ilength()

) res=res*

10+tem;

i++;}

else

}return flag>

0?res:

-res;

}}

8 字串轉整數

請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。接下來的轉化規則如下 如果第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字字元組合起來,形成乙個有符號整數。假如第乙個非空字元是數字,則直接將其與...

8 字串轉整數(atoi)

實現atoi,將字串轉為整數。說明 這題解釋的比較模糊 即沒有指定輸入格式 你得事先匯集所有的輸入情況。atoi的要求 這個函式需要丟棄之前的空白字元,直到找到第乙個非空白字元。之後從這個字元開始,選取乙個可選的正號或負號後面跟隨盡可能多的數字,並將其解釋為數字的值。字串可以在形成整數的字元後包括多...

8 字串轉整數 atoi

一 題目 實現atoi,將字串轉為整數。在找到第乙個非空字元之前,需要移除掉字串中的空格字元。如果第乙個非空字元是正號或負號,選取該符號,並將其與後面盡可能多的連續的數字組合起來,這部分字元即為整數的值。如果第乙個非空字元是數字,則直接將其與之後連續的數字字元組合起來,形成整數。字串可以在形成整數的...