【发布时间】:2011-01-14 19:11:20
【问题描述】:
在 C 中使用atoi 时,我试图将char 数字数组转换为int。不过,我的号码前面有0,当我稍后打印号码时,它们并没有被保留。
char num[] = "00905607";
int number;
number = atoi(num);
printf("%d", number);
这个输出将是905607,我希望它是00905607。
有什么想法吗?
【问题讨论】:
-
首先,不,它没有;
atoi无论前导零如何都转换为十进制。其次,您打印的是原始字符数组,而不是转换后的数字。 -
你的编译器不会转换任何东西,尤其是不会转换成八进制..
-
你应该使用
char num[] = ...而不是零长度数组。