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;
}
}

本文介绍了一个用C语言实现的atoi函数,该函数能够将字符串转换为整数,并正确处理正负号及溢出情况。文章详细展示了如何跳过字符串前导空格、读取符号位、解析数字字符以及如何在遇到溢出时返回特定值。
502

被折叠的 条评论
为什么被折叠?



