class Solution {
public:
int atoi(const char *str) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
while (isspace(*str))
++str;
int sign = *str == '-' ? -1 : 1;
if (*str == '-' || *str == '+')
++str;
int res = 0;
while (isdigit(*str))
{
int digit = *str - '0';
if (INT_MAX / 10 >= res)
res *= 10;
else
return sign == -1 ? INT_MIN : INT_MAX;
if (INT_MAX - digit >= res)
res += digit;
else
return sign == -1 ? INT_MIN : INT_MAX;
++str;
}
return res * sign;
}
};[Leetcode] Atoi
本文详细解析了C++中将字符串转换为整型的实现过程,包括去除空格、判断符号、逐位读取并计算整数值等关键步骤。通过实例代码展示,帮助读者理解底层逻辑。

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



