將字串轉化為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的時候也被問到了,巧合的是今天看廣聯達的面試題再次遇到。一周之內看到三次,讓我不得不重視一下啊,畢竟自己也要開始面試題呀面試題了!其實這個函式比較容易實現,不...