【问题标题】:How to integrate int variable in a string?如何将 int 变量集成到字符串中?
【发布时间】:2015-02-14 12:52:30
【问题描述】:
#include<stdio.h>

main()
{
    int i=100;
    char temp[]="value of i is **** and I can write int inside a string";
    printf("\n%s\n",temp);

}

我需要在字符串中打印i 的值。这样我就会得到如下输出:

value of i is 100 and I can write int inside a string

我应该在 **** 的位置写什么或者我应该如何更改此代码以获得如上的输出?我不想使用printf 来打印此输出。

【问题讨论】:

  • 为了迂腐,main函数返回一个整数,所以以int main()开始,以return 0;结束
  • @TheBigH 不要使用int main(),而是使用int main(void)
  • 不要在参数列表中使用 void,因为那不是正确的格式。注意: () 参数列表表示任意数量的参数,包括无。子功能也是如此。原型将具有 (void);但函数的实际声明将有一个简单的 ()
  • 使用建议的答案将完整文本放入缓冲区,然后使用 fputs() 打印字符串

标签: c string int


【解决方案1】:

您可以使用 sprintf 将字符串“打印”到 char 数组中,例如 printf 将其打印到屏幕上:

char temp[256];
sprintf(temp, "value of i is %d and I can write int inside a string", i);

请注意,您需要确保缓冲区足够大!或者使用snprintf 指定最大字符串/文本长度,这样就不会写到缓冲区之外。

【讨论】:

    【解决方案2】:
    printf("value of i is %d and I can write int inside a string\n",100);
    

    如果你不想这样做,那就去吧

    char buf[200];
    int i=100;
    snprintf(buf,sizeof(buf),"value of i is %d and I can write int inside a string",i);
    

    【讨论】:

    • OP 说:我不想用 printf 来打印这个输出
    【解决方案3】:

    这样做的安全方法是使用

    char temp[256]; /*allocate some storage, currently large enough for the text and a 64 bit int*/
    snprintf(temp, sizeof(temp), "value of i is %d and I can write int inside a string", i);
    

    sizeof(temp) 是 256。snprintf 将在达到该大小后停止向 temp 写入数据;允许空终止符。

    我不鼓励使用sprintf,因为它可能会溢出提供的缓冲区,这是不安全的:snprintf 已经成为 C 标准库的一部分有一段时间了。

    并且,将该原型更改为int main()返回一个值。 0 通常表示成功。

    【讨论】:

      【解决方案4】:
      #include<stdio.h>
      main()
      {
      
          int i=100;
          char temp[]="value of i is %d and I can write int inside a string";
          printf(temp,i);
      
      }
      

      试试这个。

      【讨论】:

      • printf("value of i is %d and I can write int inside a string", i); ?
      猜你喜欢
      • 1970-01-01
      • 2017-06-15
      • 2018-10-08
      • 2019-05-21
      • 1970-01-01
      • 2016-05-29
      • 1970-01-01
      • 2021-12-10
      • 2017-01-29
      相关资源
      最近更新 更多