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