【发布时间】:2016-01-05 17:29:55
【问题描述】:
我有一个包含 14 位数字的字符串。
我想将字符串转换为 int。
当我使用 atoi(stringName) 时,我得到了最大 32 位的限制。
例子:
String1 包含“201400000000”
long long tempNum1;
tempNum1 = atoi(String1);
printf("%d",tempNum1);
输出为:2147483647
我怎样才能把这个字符串变成一个数字?我想将它与其他数字字符串进行比较,找出最大的。 (我有三个14位数字的字符串,我想找出哪个最小,哪个最大)。
【问题讨论】:
-
我想知道你期待
tempNum1 = sprintf(String1,NULL,10);做什么。 -
应该是 printf("%llu",tempNum1);并使用 strtoI 进行字符串到长的转换
-
long在 Windows 和大多数 32 位 *nix 操作系统上仍然是 32 位。只有long long保证至少有 64 位 -
谢谢大家。 strtoll 工作。还要感谢@user2979190 提到格式说明符!
标签: c arrays string int long-integer