【问题标题】:How to add integer in a string?如何在字符串中添加整数?
【发布时间】:2019-11-30 07:00:52
【问题描述】:

我想用字符串值而不是变量附加整数值。

我尝试将一个整数值放入一个名为 February 的字符串中。我尝试使用 += 运算符,但没有成功。

string getMonth(day)
{
      if(day >=31 ){
          day -= 31;
          "February "+=day;
      }
}

【问题讨论】:

  • @NO_NAME 如果你看到一个骗子,只需投票关闭,并说明各自的原因(你使用的评论将被自动添加)。
  • @MarekR 我就是这么做的?好吧,我不能投票关闭,因为我没有 3,000 名声望,但我点击了选项 flag 并自动添加了评论。

标签: c++ string operator-overloading concatenation operators


【解决方案1】:

做类似的事情

#include <string>

// ...

std::string s( "February " );

s += std::to_string( day );

这是一个演示程序

#include <iostream>
#include <string>

int main()
{
    std::string s( "February " );

    int day = 20;

    s += std::to_string( day );

    std::cout << s << '\n';
}

它的输出是

February 20

另一种方法是使用字符串流。

这里还有一个演示程序。

#include <iostream>
#include <sstream>
#include <string>

int main()
{
    std::ostringstream oss;
    int day = 20;

    oss << "February " << day;

    std::string s = oss.str();

    std::cout << s << '\n';
}

其输出与上图相同。

【讨论】:

  • 我包含的字符串仍然显示:“to_string 未定义”错误显示。”
  • @BiploveLamichhane 如果您完全按照编写的方式复制调用,即您使用了限定名称 std::to_string,那么您可能需要更现代的 C++ 编译器。
  • std::to_string 是自 c++11 以来标准的一部分。你用什么编译器?
  • @NO_NAME 我使用的是 dev c++ 5.11 版
  • 好的,Dev-C++ 是一个环境,不是编译器,但足够接近。 Wiki 说它在应该支持 c++11 的版本中使用 MinGW(基本上是 GCC)。也许在这个版本中不是默认的?尝试手动将-std=c++11 添加到编译器选项中。
【解决方案2】:

上面的答案解决了我的问题。如果你像我一样使用dev c++,那么你可能会遇到同样的问题,我建议你添加-std=c++11。为此,您可以访问此链接 How to change mode from c++98 mode in Dev-C++ to a mode that supports C++0x (range based for)? 并转到第二个答案。谢谢

【讨论】:

    猜你喜欢
    • 2023-03-30
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-04-12
    • 2015-06-10
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多