【发布时间】:2015-08-28 13:33:59
【问题描述】:
我想扫描一个至少包含 200 个字符的字符串,然后我想将该字符串 convert 转换为 int,以便我可以使用例如打印它printf("%d", digit).
我怎样才能写出像我在这里写的这样的函数 (这个不行!):
int main()
{
char car[200];
int number;
int i,x;
int sum = 0;
printf("Write in number: \n");
scanf("%c", &car);
for (i=0; i<200; i++) {
if (car[i] != '\0') {
x = car[i]-'0';
sum = sum + x;
if (i != 0) {
sum = sum*10;
}
}
}
return 0;
}
【问题讨论】:
-
问自己这个问题:
int可以包含的最大值是多少?然后想想你问题的“至少 200 个字符部分”。 -
scanf("%c", &car);应该是scanf("%s", car);在 int(或 long)中可以放置的最大数字是 2^32 (2^64)。可能会超过 200 位数。 -
@PaulOgilvie:错了。
int的范围是_实现定义的。有最低要求 (+/-32767),但没有最高要求。限制。INT_MIN和INT_MAX为实现提供了这个范围 (limits.h).. -
@asimes: 错了,看我上面的评论。
-
@asimes:请指出C 标准 声明的地方! (而且我不需要计算器)