【问题标题】:Converting an Integer to String (C)将整数转换为字符串 (C)
【发布时间】:2014-02-16 21:01:34
【问题描述】:

我对 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)或者是否我只是不恰当地执行字符串。

【问题讨论】:

  • len=sprintf(str,...
  • scanf("%lld", &inputNum); printf("%lld", inputNum);
  • 打印出转换后的字符串你就知道原因了

标签: c string integer


【解决方案1】:

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

另外,您应该知道int 可以存储多少位取决于平台。在您的情况下,它可能是 32 位,其范围约为 -2^31 到 2^31。同样,long long 的长度为 64 位,具有类似的约束。我的意思是,对于任意位数,您将需要一个不同的解决方案。

【讨论】:

    猜你喜欢
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-08
    • 1970-01-01
    • 2011-04-21
    • 2011-12-27
    • 2021-08-15
    相关资源
    最近更新 更多