闲来无事简单实现以下atoi函数:
int my_atoi(char *str)
{
int i = 0, ret = 0, flag = 1;
if(str != NULL)
{
//判断符号位
if (str[i] == '-')
{
str += 1;
flag = -1;
}
else if(str[i]== '+')
{
str += 1;
}
//计算最大权重
while((str[i] >= '0') && (str[i] <= '9'))
{
i++;
}
if (i != 0)
{
//按权重进行累加
int j = 0;
while(i)
{
int tmp = i,sum = 1;
for( ;tmp > 1; tmp-- )
{
sum *= 10;
}
ret += sum * (str[j] -'0');
j++;
i--;
}
}
}
return flag*ret;
}