各位大大好,小弟最近在練程式實作atoi這個function
卻發生一個問題我怎麼想都不知道錯在哪
atoi是把一個字串轉成int型態
我的錯誤是如果我的字串是 char s[]="-123";
結果輸出會是-122,也就是說我目前唯一發現有問題的地方是
只要輸入是"負號且3位數",結果就會少1
(ex:-987變成-986)
非3位數跟正整數就不會有這問題
叫朋友幫我編譯他說他沒問題
但我自己的電腦跟學校電腦都會這樣
想請版上高手幫我解答,我使用的編譯器是code::blocks
以下是code
int Myatoi(char* s)
{
int sum=0,i=0,count1=0;
int j,lenght,count2;
lenght = strlen(s);
if (s[0] != '-')
{
if (s[0] < '0' && s[0] > '9')
{
return 0;
}
else
{
while (s[i] >= '0' && s[i] <= '9')
{
count1++;
i++;
}
count2 = count1 - 1;
for (j=0;j<count1;j++)
{
sum = sum + ((int)(s[j] - '0')) * pow(10,count2);
count2