8 字串轉換整數 atoi

2021-09-27 11:18:11 字數 1192 閱讀 3513

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 函式,使其能將字串轉換成整數。首先,該函式會根據需要丟棄無用的開頭空格字元,直到尋找到第乙個非空格的字元為止。當我們尋找到的第乙個非空字元為正或者負號時,則將該符號與之後面盡可能多的連續數字組合起來,作為該整數的正負號 假如第乙個非空字元是數字,則直接將其與之後連續的數字字...