實現功能 atoi

2021-08-25 02:26:44 字數 1155 閱讀 7451

將字串轉化為int型整數:

1.當字串中第乙個數字之前既不是正負號也不是空格時,直接返回0。如「dakks   34」

2.當字串中資料的大小超過整數的範圍時,返回int能表示的最大值或最小值。

3.當遇到「+-333」時返回0。

先上自己的**:

#define int_max         (2147483647)

#define int_min (-2147483648)

int myatoi(char* str)

if((str[i] >= '0')&&(str[i] <= '9'))

// 判斷是否超過負數的最小值

else if((plus_minus == 1)&&((num * 10 - (str[i]-'0')) < int_min))

if(plus_minus == 0)

else

//printf("num = %d,n = %d,plus_minus = %d,max = %d,min = %d\r\n",num,(str[i]-'0'),plus_minus,int_max,int_min);

}else if(found == 1)

else if((found == 0)&&(str[i] != '-')&&(str[i] != '+'))

if((found == 0)&&(str[i] == '+'))

if((found == 0)&&(str[i] == '-'))

i++;

}return (int)num;

}

bool issign(char c)

bool isdigit(char c)

int myatoi(char* str)

if(isdigit(str[idx]))

else

}else

break;

}idx++;}}

rst = (num*sign >= int_max) ? int_max : (num*sign <= int_min ? int_min : (int)(num & 0x000000007fffffff)*sign);

return rst;

}

atoi自行實現

atoi系列是字元跟數字之間轉換常用的函式,其實自己實現也是挺快的,這裡寫一種帶格式檢測的atoi函式。函式說明 atoi 會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時 0 才結束轉換,並將結果返回。返回值返回轉換後的整型數。includ...

atoi 函式實現

實現atoi 函式開始之前,測試了庫中的atoi 函式,發現庫中提供的atoi函式可以處理許多異常,下面就是庫中可以處理的異常 1.指標為null 2.空字串 3.號處理 4.遇到異常字元時的處理方式 5.溢位時處理,分為兩部分 1 上溢位,輸出上界 2 下溢位,輸出下界 那麼對這些異常進行處理就可...

atoi函式的實現

atoi函式的實現 寫這個函式的實現的原因很簡單,而且也很容易,直接抄襲的庫中的原始碼。因為有朋友面試的時候遇到了,前幾天乙個哥們面intel的時候也被問到了,巧合的是今天看廣聯達的面試題再次遇到。一周之內看到三次,讓我不得不重視一下啊,畢竟自己也要開始面試題呀面試題了!其實這個函式比較容易實現,不...