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