【问题标题】:Create a C++ string with given format创建具有给定格式的 C++ 字符串
【发布时间】:2013-11-08 01:27:48
【问题描述】:

我是一名 Objective-C 开发人员,有时我必须处理 C/C++ 代码。 我有一个用 C++ 编写的函数,它记录一个带有名称的事件,例如 Level_12_Pack_10。我想创建一个这样的动态 C++ 字符串,然后我可以更改级别和包号。 在 Objective C 中,使用几行代码很容易: [NSString stringwithformat] 但在 C++ 中,这对我来说有点困难。 有人可以帮我做吗?

【问题讨论】:

  • 你想要的很简单。向我们展示您的尝试。在 stl 中查找 std::string。您可能会寻找 ostream 运算符

标签: c++ objective-c c


【解决方案1】:

在 c++11 中,使用 std::to_string(level) 等连接字符串非常简单。

int level = 10;
int pack = 40;

std::string stuff = "Level_" + std::to_string(level) + "_Pack_" + std::to_string(pack);
//stuff is now "Level_10_Pack_40"
std::cout << stuff;

【讨论】:

    【解决方案2】:

    我认为 C++ 不支持带有内置可变变量的字符串。制作一个类来格式化这样的字符串太过分了。可能你能得到的最接近的东西是使用字符串流:

    #include <sstream>
    string makeMyString(int level, int pack) {
      stringstream ss;
      ss << "Level_" << level << "_Pack_" << pack;
      return ss.str();
    }
    

    如果您有一个字符串需要读取和更改其中的值,可以使用类似的函数。

    【讨论】:

      猜你喜欢
      • 2014-07-27
      • 2020-08-25
      • 2017-03-20
      • 2021-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-22
      • 1970-01-01
      相关资源
      最近更新 更多