【问题标题】:how to add a int to a char[] in c/c++如何在 C/C++ 中将 int 添加到 char[]
【发布时间】:2012-09-27 19:52:57
【问题描述】:

我有这样的代码:

int i = 123;
char myString[100];
strcpy(myString, "my text");

以及我想如何在“我的文本”之后添加 123。如何在 c/c++ 中做到这一点?

最后myString应该是my test123

【问题讨论】:

标签: c++ c char


【解决方案1】:

在 C++ 中:

std::stringstream ss;
ss << "my text" << i;
std::string resultingString = ss.str();

没有 C/C++ 之类的东西

【讨论】:

    【解决方案2】:

    在 C++11 中:

    std::string result = "my text" + std::to_string(i);
    

    【讨论】:

      【解决方案3】:

      (补充卢奇安的回答)

      在 C 中:

      char myString[128];
      int i = 123;
      snprintf(myString, sizeof(myString), "My Text %d", i);
      

      【讨论】:

      • 注意:这仅适用于myString 是一个数组。如果它是一个指针,您必须跟踪指向缓冲区的长度并将其作为snprintf 的第二个参数传递,因为sizeof(pointer) 不是您想要的(通常是4 或8 个字节)。
      • 是的,我只是添加说明,以防有人过来并决定复制+粘贴代码而不完全理解它。
      • @AdamRosenfield 绝对有正当理由。 (没有人应该在不理解代码的情况下复制粘贴代码,对吧?)
      【解决方案4】:

      假设 mystring 足够大,在这个例子中就是这样:

      sprintf( myString, "my text%d", 123 );
      

      【讨论】:

      • 对不起,伙计,但是 -1 因为不使用 snprintf()。你应该真的很安全。
      【解决方案5】:

      在 C++ 中使用 Qt QString 对象:

      std::cout << QString("my text %1").arg(123456);
      

      【讨论】:

        猜你喜欢
        • 2016-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-25
        • 2017-03-21
        • 1970-01-01
        相关资源
        最近更新 更多