【发布时间】:2013-04-17 17:56:40
【问题描述】:
我正在尝试创建自己的 atoi 函数。使用以下内容,我得到的返回值为 0。无论我更改函数中的数字变量,我得到的都是返回值。关于修改代码的任何建议?
//my atoi function
int atoi_me(char *numstring)
{
int number = 0;
while((*numstring >= '0') && (*numstring <= '9'))
{
number = (number * 10) + (*numstring - '0');
numstring++;
}
return number;
}
int main()
{
char *number[MAXSIZE];
int num;
printf("Please enter a number:\n");
scanf("%c", &number);
num = atoi_me(*number);
printf("%d", num);
return 0;
}
【问题讨论】:
-
你使用什么作为输入?
-
表达式
number = (number * 10)将始终为0。 -
@htor,只是第一次。
-
@KryptNick,你确定这是你的真实代码吗?它对我来说看起来不错,并且在这里的测试程序中运行良好。你用的是什么输入法?
-
我觉得没问题。你手边没有调试器吗?