/*
m_atoi
@author arhaiyun
*/
#include<assert.h>
bool g_bInvalid = false;
int m_atoi(char* str)
{
assert(str != NULL);
long long result = 0;
while(*str == ' ' || *str == '\n' || *str == '\t')
str++;
int flag = 1;
if(*str == '+')
{
str++;
}
else if(*str == '-')
{
str++;
flag = -1;
}
if(*str != '\0')
{
result = atoi_core(str, flag);
}
return (int)result;
}
long long atoi_core(char* str, int flag)
{
assert(str != NULL);
long long result = 0;
while(*str != '\0')
{
if(*str >= '0' && *str <= '9')
{
result = result * 10 + flag * (*str - '0');
if(result > 0x7fffffff || result < 0x80000000)
{
result = 0;
g_bInvalid = true;
break;
}
}
else
{
result = 0;
g_bInvalid = true;
break;
}
}
return result;
}
atoi函数 int m_atoi(char* str)
最新推荐文章于 2021-10-23 00:02:57 发布
本文介绍了一个名为 m_atoi 的函数实现,该函数用于将字符串转换为整数。通过预处理空格、符号判断及核心转换逻辑,实现了对输入字符串的有效解析,并考虑了整数溢出的情况。
195

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



