const int iMax = (1 << 31) - 1; //int最大值2147483647
const int iMin = -(1 << 31); //int最小值-2147483648
int my_atoi(char *ch)
{
char *temp = ch;
int sum = 0; //转换后的值
bool bPlus = true; //是否是非负数
if ('-' == temp[0])
{
bPlus = false;
temp++;
}
else if ('+' == temp[0])
{
temp++;
}
while ('0' <= *temp && '9' >= *temp)
{
if (bPlus && (sum > iMax / 10 || (sum == iMax / 10 && *temp > 7)))
{
return iMax;
}
else if (!bPlus && (sum > iMax / 10 || (sum == iMax / 10 && *temp > 8)))
{
return iMin;
}
sum = sum * 10 + (*temp - '0');
temp++;
}
return sum = bPlus ? sum : -sum;
}
const int iMin = -(1 << 31); //int最小值-2147483648
int my_atoi(char *ch)
{
char *temp = ch;
int sum = 0; //转换后的值
bool bPlus = true; //是否是非负数
if ('-' == temp[0])
{
bPlus = false;
temp++;
}
else if ('+' == temp[0])
{
temp++;
}
while ('0' <= *temp && '9' >= *temp)
{
if (bPlus && (sum > iMax / 10 || (sum == iMax / 10 && *temp > 7)))
{
return iMax;
}
else if (!bPlus && (sum > iMax / 10 || (sum == iMax / 10 && *temp > 8)))
{
return iMin;
}
sum = sum * 10 + (*temp - '0');
temp++;
}
return sum = bPlus ? sum : -sum;
}