字串轉換為整數需要考慮很多種情況,如下:
第一種情況:空指標
第二種情況:空字串
第三種情況:空白字元
第四種情況:中間有字母的
int main()
atoi()函式遇見a就自動停下來了,輸出123
第五種情況:前面有符號的
int main()
輸出-12345
第六種情況:前面有空格
int main()
輸出12345
第七種情況:數字很長
int main()
這樣會溢位,輸出整形所能表達的最大數2147483647,負數也是會溢位,加負號輸出-2147483647
其實就是相當於模擬實現atoi()
#include
#include
#include
#include
enum status//列舉兩個狀態
;enum status status = invalid;//定義乙個status初始化為非法,因為合法的情況比較少,後面遇到合法的置合法即可,**簡單
int my_atoi(const char* str)
//3、空白字元
while (isspace(*str))
//4、符號『+』『-』
if (*str == '-')
if (*str == '+')
//5、正常字元
while (*str)
else}}
else
str++;
}status = valid;//置為合法就可以輸出了
//return ret*flag;//如果前面遇到負號也不擔心輸出錯誤
return (int)ret;//上面已經乘以flag了,這裡就不需要乘了
}int main()
字串轉換為整數
class program catch exception ee console.read 轉換類 public class strconverter bool positive true int32 result 0 double tempresult 0 int start 0 while st...
字串轉換為整數
題目 輸入乙個表示整數的字串,把該字串轉換成整數並輸出。例如輸入字串 345 則輸出整數345。分析 這道題儘管不是很難,學過c c 語言一般都能實現基本功能,但不同程式設計師就這道題寫出的 有很大區別,可以說這道題能夠很好地反應出程式設計師的思維和程式設計習慣,因此已經被包括微軟在內的多家公司用作...
將字串轉換為整數
該問題的知識點 1.對於c 風格的字串來說,結尾標誌位 0 2.將純數字字串轉換為整數,需要依次的拿前乙個字元生成的數字乘以 10 再加上當前字元和 0 的差 3.對於特殊情況的處理 空字元陣列 字串中間有空格,字串前面會有很多空格 字串中間存在不合法字元 字串第乙個非空字元為 或者 對於最大正整數...