//要注意一个地方就是,当res值为超过边界的时候,需要long long int来存储。因此,声明时候需要long long
class Solution {
public:int atoi(const char *str) {
if(*str == '\0'||str== NULL)return 0;
long long int res = 0;
while(*str == ' ')
str++;
int sign = 1;
if(*str=='-')
{sign=-1;str++;}
else if(*str == '+')
str++;
while(*str>='0' && *str<='9')
{
res=res*10+*str-'0';
if(res*sign>INT_MAX)
{res=INT_MAX;break;}
else if(res*sign<INT_MIN)
{res=INT_MIN;break;}
str++;
}
res*=sign;
return res;
}
};
本文详细介绍了如何使用C++语言将整数字符串转换为整型数值的过程,包括边界条件处理和符号判断。通过实例演示了如何通过遍历字符串并计算每个字符对应的数值来构建最终的整数,同时考虑了溢出风险。
236

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



