8 字串轉換整數 atoi c語言

2021-10-20 10:35:55 字數 2412 閱讀 5996

不斷吸取他人的長處,來補足自己的弱點 加油

請你來實現乙個 myatoi(string s) 函式,使其能將字串轉換成乙個 32 位有符號整數(類似 c/c++ 中的 atoi

函式)。

函式 myatoi(string s) 的演算法如下:

讀入字串並丟棄無用的前導空格 檢查下乙個字元(假設還未到字元末尾)為正還是負號,讀取該字元(如果有)。 確定最終結果是負數還是正數。

如果兩者都不存在,則假定結果為正。 讀入下乙個字元,直到到達下乙個非數字字元或到達輸入的結尾。字串的其餘部分將被忽略。

將前面步驟讀入的這些數字轉換為整數(即,「123」 -> 123, 「0032」 -> 32)。如果沒有讀入數字,則整數為 0

。必要時更改符號(從步驟 2 開始)。 如果整數數超過 32 位有符號整數範圍 [−231, 231 − 1]

,需要截斷這個整數,使其保持在這個範圍內。具體來說,小於 −231 的整數應該被固定為 −231 ,大於 231 − 1 的整數應該被固定為

231 − 1 。 返回整數作為最終結果。 注意:

本題中的空白字元只包括空格字元 』 』 。 除前導空格或數字後的其餘字串外,請勿忽略 任何其他字元。

示例 1:

輸入:s = 「42」 輸出:42 解釋:加粗的字串為已經讀入的字元,插入符號是當前讀取的字元。 第 1

步:「42」(當前沒有讀入字元,因為沒有前導空格)

^ 第 2 步:「42」(當前沒有讀入字元,因為這裡不存在 『-』 或者 『+』)

^ 第 3 步:「42」(讀入 「42」)

^ 解析得到整數 42 。 由於 「42」 在範圍 [-231, 231 - 1] 內,最終結果為 42 。 示例 2:

輸入:s = " -42" 輸出:-42 解釋: 第 1 步:" -42"(讀入前導空格,但忽視掉)

^ 第 2 步:" -42"(讀入 『-』 字元,所以結果應該是負數)

^ 第 3 步:" -42"(讀入 「42」)

^ 解析得到整數 -42 。 由於 「-42」 在範圍 [-231, 231 - 1] 內,最終結果為 -42 。 示例 3:

輸入:s = 「4193 with words」 輸出:4193 解釋: 第 1 步:「4193 with

words」(當前沒有讀入字元,因為沒有前導空格)

^ 第 2 步:「4193 with words」(當前沒有讀入字元,因為這裡不存在 『-』 或者 『+』)

^ 第 3 步:「4193 with words」(讀入 「4193」;由於下乙個字元不是乙個數字,所以讀入停止)

^ 解析得到整數 4193 。 由於 「4193」 在範圍 [-231, 231 - 1] 內,最終結果為 4193 。 示例 4:

輸入:s = 「words and 987」 輸出:0 解釋: 第 1 步:「words and

987」(當前沒有讀入字元,因為沒有前導空格)

^ 第 2 步:「words and 987」(當前沒有讀入字元,因為這裡不存在 『-』 或者 『+』)

^ 第 3 步:「words and 987」(由於當前字元 『w』 不是乙個數字,所以讀入停止)

^ 解析得到整數 0 ,因為沒有讀入任何數字。 由於 0 在範圍 [-231, 231 - 1] 內,最終結果為 0 。 示例 5:

輸入:s = 「-91283472332」 輸出:-2147483648 解釋: 第 1

步:"-91283472332"(當前沒有讀入字元,因為沒有前導空格)

^ 第 2 步:"-91283472332"(讀入 『-』 字元,所以結果應該是負數)

^ 第 3 步:"-91283472332"(讀入 「91283472332」)

^ 解析得到整數 -91283472332 。 由於 -91283472332 小於範圍 [-231, 231 - 1] 的下界,最終結果被截斷為 -231 = -2147483648 。

0 <= s.length <= 200 s 由英文本母(大寫和小寫)、數字(0-9)、』 『、』+』、』-』 和 『.』 組成

這道題思路好想,但有些細節的地方會很讓人頭痛,**修修補補最後實在是難受,老實巴交的借鑑人家高超的寫法吧!

我先把坑放在這裡

1.數字前允許加號出現

2.注意int的範圍,因為在計算-91283472332過程中 根本容不下那麼大的數字,就會報錯,所以要提前判斷

int

myatoi

(char

* s)

else

if(flag)if(

isdigit

(*s)

)//這個用來判斷也很巧妙

return int_min;

}else

return num;

}

8 字串轉換整數 atoi (C 實現)

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

字串轉換整數 atoi c

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

8 字串轉換整數 python

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