题解 | #把字符串转换成整数(atoi)#
把字符串转换成整数(atoi)
https://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f
/** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param s string字符串 * @return int整型 */ #define INT_MAX 2147483647 #define INT_MIN -2147483648 int StrToInt(char* s ) { // write code here long long res = 0; int nagFlag = 0; //负数标志位 //去除前导空格 while(*s == ' ')s++; //符号位处理 if(*s == '+'){ s++; //跳过符号位 }else if(*s == '-'){ s++; nagFlag = 1; } //获取有效数字 while(*s >= '0' && *s <='9'){ res *= 10; res += *s - '0'; s++; //判断是否超过int的表示范围 if(nagFlag == 0 && res > INT_MAX){ res = INT_MAX; break; }else if(nagFlag == 1 && -res < INT_MIN){ res = INT_MIN; break; } } if(nagFlag == 1) //如果是负数 res *= -1; return (int)res; }