字串轉換整數

2021-10-07 05:17:26 字數 971 閱讀 2772

方法一: 字串的轉換

明確轉化規則

空格處理

正負號處理

數字處理

推入數字

result = result * 10 + num

進行左移操作

模式識別:整數運算注意溢位(推入的過程中可能產生溢位,乘10和累加都可能造成溢位)

轉換為int_max的逆運算

比如判斷某數乘10是否會溢位,那麼就把該數 與int_max/10進行比較

//偽**

public

static

intmyatoi

(string str)

// 計算轉換值

base = base *10+

(str.

charat

(i++)-

'0');}

return base * sign;

}

標準答案
public

intmyatoi

(string str)

// 判斷正負號

if(i < str.

length()

&&(str.

charat

(i)==

'+'|| str.

charat

(i)==

'-')

)//

while

(i < str.

length()

&& str.

charat

(i)>=

'0'&& str.

charat

(i)<=

'9')

base = base *10+

(str.

charat

(i++)-

'0');}

return base * sign;

}

字串轉換整數

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

字串轉換整數

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

字串轉換整數

不需要讀入空格,因此無論左邊有多少空格直接跳過,移動str指標到第乙個不是空格的位置上。然後判斷符號位,存在三種情況 和無正負號,當沒有符號的時候不需要任何操作,當是 號時使s 1。設定flag 0 flag作用下面詳細說明 遇到其他字元,break 不是數字的字元遍歷完,逐個將數字字元轉化為整數,...