我对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)或者即时通讯只是执行字符串。
答案 0 :(得分:3)
您的格式说明符错误。 %d
用于常规int
变量。你的是long long int
。请改用%lld
,它应该可以正常工作。
此外,您应该知道int
可以存储的确切位数与平台有关。在您的情况下,它可能是32位,其范围大约为-2^31
到2^31
。同样,long long
长度为64位,具有类似的约束。我所说的是,你需要一个不同数字的不同解决方案。