atoi()函数实现
atoi()函数说将字符串转换为int数字
在进行函数实现时要考虑以下几种异常情况:
- 字符串为空
- 字符串前面有空格要忽略
- 判断正负号
- 由于atoi()返回值为int类型,要注意上下界溢出判断
- 异常字符跳出
以下为代码实现
int my_atoi(const char* str)
{
long long ret = 0;
//字符串为空
if (str == NULL || *str == '\0')
{
return 0;
}
int flag = 1;
//去掉前面的空格
while (*str == ' ')
{
str++;
}
//判断符号
if (*str == '-' || *str == '+')
{
if (*str == '-')
flag = -1;
str++;
}
while (*str != '\0')
{
if (*str <= '9' && *str >= '0')
{
ret = ret * 10 + flag*(*str - '0');
//越界判断
if (ret > INT_MAX)
{
printf("上界溢出\r\n");
return INT_MAX;
}
if (ret < INT_MIN)
{
printf("下界溢出\r\n");
return INT_MIN;
}
}
else
{ //非法字符
return (int)ret;
}
str++;
}
return (int)ret;
}
本文介绍了C++中实现atoi()函数的方法,包括处理字符串为空、前导空格、正负号、整数溢出及异常字符等情况。并提供了代码实现。
2万+

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



