int myAtoi(char * str){
int value = 0;
char sysmbol =' ';
// 先取出空格
while(*str == ' '){
str++;
}
// 取正负号
if(*str == '+'){
sysmbol = '+';
str++;
}else if(*str == '-'){
sysmbol = '-';
str++;
}
//取数字并做计算,如果value大于或小于限定值直接返回
while(*str >= '0' && *str <= '9'){
if(value + (*str - 48) / 10.0 >= 214748364.7 && sysmbol != '-'){
return 2147483647;
}else if(value + (*str - 48) / 10.0 >= 214748364.8 && sysmbol == '-'){
return -2147483648;
}
value = value * 10 + (*str - 48);
str++;
}
//判断正负号
if(sysmbol != '-'){
return value;
}else{
return -value;
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)