创建具有给定格式的C ++字符串

时间:2013-10-29 03:08:21

标签: c++ objective-c c

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

2 个答案:

答案 0 :(得分:1)

我不认为C ++支持具有内置可变变量的字符串。使类成为格式化字符串会过于过分。可能最接近的是使用stringstreams:

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

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

答案 1 :(得分: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;