字串轉換成整數

2022-08-24 02:03:12 字數 1122 閱讀 9781

輸入乙個由數字組成的字串,把它轉換成整數並輸出。例如:輸入字串"123",輸出整數123。

給定函式原型int strtoint(const char *str),實現字串轉換成整數的功能,不能使用庫函式atoi。

注意一下幾點:

空指標輸入:輸入的是指標,在訪問空指標時程式會崩潰,因此在使用指標之前需要先判斷指標是否為空。

正負符號:整數不僅包含數字,還有可能是以'+'或'-'開頭表示正負整數,因此如果第乙個字元是'-'號,則要把得到的整數轉換成負整數。

非法字元:輸入的字串中可能含有不是數字的字元。因此,每當碰到這些非法的字元,程式應停止轉換。

整型溢位:輸入的數字是以字串的形式輸入,因此輸入乙個很長的字串將可能導致溢位。

完整參考**如下:(溢位可以使用long long型別或者不用也可以)

int strtoint(char *str)

while(isspace(*str))

if(*str == '-'

)

else

if(*str == '+'

)

while(isdigit(*str))

if(!sign && (res > (unsigned)min_int / 10 || res == (unsigned)min_int / 10 && temp > (unsigned)min_int % 10

))

res = res * 10 +temp;

++str;

}return sign ? res : -res;

}

int myatoi(string

str)

if(str[i] == '-'

)

else

if(str[i] == '+'

)

int temp = 0

;

for(; i < str.size(); ++i)

else

if(!flag && -res }

else

}return flag ? res : -res;

}

字串轉換成整數

題目詳情 輸入乙個表示整數的字串,把該字串轉換成整數並輸出,例如輸入字串 345 則輸出整數345。請完成函式strtoint,實現字串轉換成整數的功能。友情提醒 提交 之前,請複查下你的程式,比如當給的字串是如左邊所示的時候,有考慮到麼?當然,它們各自對應的正確輸出如右邊所示 假定你是在32位系統...

字串轉換成整數

輸入乙個表示整數的字串,把該字串轉換成整數並輸出,例如輸入字串 345 則輸出整數345。需要考慮的問題 1.由於整數可能不僅僅之含有數字,還有可能以 或者 開頭,表示整數的正負。2.處理非法輸入。在使用指標之前判斷這個指標是不是為空。3.輸入的字串中可能含有不是數字的字元。4.最後乙個需要考慮的問...

字串轉換成整數

字串轉換成整數。不廢話,貼 在網上找到了大神july的帖子,發現即使演算法非常細膩,但是我自己在電腦上執行卻不行,所以自己改了一下,應該沒有問題了。include include include using namespace std int strtoint const char str if i...