题解 | #把字符串转换成整数(atoi)#
把字符串转换成整数(atoi)
https://www.nowcoder.com/practice/d11471c3bf2d40f38b66bb12785df47f
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param s string字符串
* @return int整型
*/
int StrToInt(char* s) {
// write code here
int len = strlen(s);
int from = 0;
int sign = 1;
long long sum = 0;
for (int i = 0; i < len; i++) {
if (s[i] != ' ') {
from = i;
break;
}//记录第一个非空格的下标
}
if (s[from] == '-') {
sign = -1;
from++;
}
else if (s[from] == '+') {
from++;
}//判断符号位
for (int i = from; i < len; i++)
{
if (s[i] >= '0' && s[i] <= '9') //如果符号后面是连续的数,而非字母
{
sum = sum * 10 + sign * (s[i] - '0');//每个新数值都要乘以符号位
if (sum >= 2147483648) //一旦越界,立即停止并输出结果
{
sum = 2147483647;
break;
}
if (sum <= -2147483648)
{
sum = -2147483648;
break;
}
}
else return sum; //如果符号后面是非数字,立即结束循环,返回sum
}
return sum;//不用提前跳出,循环正常结束的情况
}
查看15道真题和解析