通过ASCLL码,字符的相减实现。不过在之前需要判断空字符,以及正负号问题。
int atoi1(const char* str)
{
int num = 0, flag = 1;
while (' '==*str)
{
str++;
}
if ('+'==*str||'-'==*str)
{
if ('-'==*str)
{
flag = -1;
}
str++;
}
while (*str>='0'&&*str<='9')
{
num = num * 10 + *str - '0';
str++;
}
return num*flag;
}