0

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

4

2 回答 2

1

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

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

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

于 2013-10-29T03:15:26.227 回答
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;
于 2013-10-29T04:25:52.453 回答