题解 | #把字符串转换成整数(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;//不用提前跳出,循环正常结束的情况
	}

全部评论

相关推荐

LuminousZJ:不行,最后还是要看学信网的,这点不能伪装,也骗不过人家,得不偿失
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务