将整数转换为字符串(C)

时间:2014-02-16 21:01:34

标签: c string integer

我对c很新,并且一直试图弄清楚如何将一个整数转换成一串数字,这就是我到目前为止所拥有的:

long long int inputNum = 0;
char str [20];
int len = 0;

printf("Please enter the integer to be converted,\nit should be no more than 10 digits long: \n");
scanf("%d", &inputNum);
sprintf(str,"%d", inputNum);

len = strlen(str);

printf("%d", len);

return 0;

但是我遇到一个问题是如果输入的int长度超过10个字符,程序仍然会说长度为10.我不确定这是否是数据类型的问题(例如long long int)或者即时通讯只是执行字符串。

1 个答案:

答案 0 :(得分:3)

您的格式说明符错误。 %d用于常规int变量。你的是long long int。请改用%lld,它应该可以正常工作。

此外,您应该知道int可以存储的确切位数与平台有关。在您的情况下,它可能是32位,其范围大约为-2^312^31。同样,long long长度为64位,具有类似的约束。我所说的是,你需要一个不同数字的不同解决方案。