如果使用 if(value *10+ (*str - 48) >= 214748364.7 && sysmbol != -1)判断,在例4会发生数据溢出
int myAtoi(char * str){
int value = 0;
int sysmbol =1;
while(*str == ' '){
str++;
}
if(*str == '+'){
sysmbol = 1;
str++;
}else if(*str == '-'){
sysmbol = -1;
str++;
}
while(*str >= '0' && *str <= '9'){
if(value + (*str - 48) / 10.0 >= 214748364.7 && sysmbol != -1){
return 2147483647;
}else if(value + (*str - 48) / 10.0 >= 214748364.8 && sysmbol == -1){
return -2147483648;
}
value = value * 10 + (*str - 48);
str++;
}
return value*sysmbol;
}