我正在尝试重新创建atoi,我想知道为什么我的功能有效。我最后将它改为str [i]以获得三个顶级陈述,因为它对我有意义,但它传递了我投入的所有内容。
i = 0;
result = 0;
negative = 1;
if (str[0] == '-')
{
negative = -1;
i++;
}
if (str[0] == '+')
i++;
while (str[0] <= ' ')
i++;
while (str[i] != '\0')
if (str[i] >= '0' && str[i] <= '9')
{
result = result * 10 + str[i] - '0';
++i;
}
return (result * negative);
答案 0 :(得分:0)
第一个if语句只是检查数字是否应为负数。 第二个if语句检查字符串是否以可选的正号开头 如果ascii的字符小于空间的ascii,那么第一个while循环应该运行到无穷大(32) 第二个while循环只是循环遍历字符串并将字符串转换为int
将前3个str [0]更改为str [i]不应该有很大的不同,因为我已经初始化为0.如果你的字符串以“ - +”开头不应该是一个例外有效整数或符号与数字之间有空格