輸入乙個由數字組成的字串,把它轉換成整數並輸出。例如:輸入字串"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(stringstr)
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...