int型別最大正數0x7fffffff,最小負數0x80000000
unsigned int最大正數0xffffffff(8個f)
需要考慮的情況
*1.字串為空的時候返回什麼
*2.遇到0~9之外的字元,返回什麼
*3.只有乙個+/-符號
*4.溢位
/*
*1.字串為空的時候返回什麼
*2.遇到0~9之外的字元,返回什麼
*3.只有乙個+/-符號
*4.溢位
*/class solution
size_t pos = str.find_first_not_of(' ');
// 字串中無數字
if (pos == std::string::npos)
// 找到數字和符號
str = str.substr(pos);
int sign = 1, i = 0;
int sum = 0;
// 記錄符號位
if (str[0] == '-' || str[0] == '+')
// 遍歷數字部分
for (; i < str.size(); ++i)
// 判斷sum*10和sum*10+(str[i]-'0')是不是將超過int_max或者小於int_min
if (sign == 1 && (sum > int_max/10 || (sum == int_max/10 && str[i]-'0' >= int_max%10))) else if (sign == -1 && (sign*sum < int_min/10 || (sign*sum == int_min/10 && sign *(str[i]-'0') <= int_min%10)))
sum = sum*10 + (str[i]-'0');
}return sum*sign;}};
8 字串轉換整數 atoi
題目描述 請你來實現乙個atoi函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的...
8 字串轉換整數(atoi)
請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...
8 字串轉換整數 atoi
請你來實現乙個 atoi 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...