Я - Objective-C, и иногда мне приходится иметь дело с кодом C/C++. У меня есть функция, написанная в C++, она регистрирует событие с именем, например, Level_12_Pack_10. Я хочу создать динамическую C++ строку, подобную этой, тогда я могу изменить номера уровней и пакетов. В Objective C это легко с некоторыми строками кода: [NSString stringwithformat], но в C++ это немного сложно для меня. Может ли кто-нибудь помочь мне сделать это?
Я не думаю, что C++ поддерживает строки со встроенными переменными переменными. Было бы слишком over-the-top, чтобы класс мог форматировать эту строку. Вероятно, самое близкое, что вы можете получить, это использовать строковые потоки:
#include <sstream>
string makeMyString(int level, int pack) {
stringstream ss;
ss << "Level_" << level << "_Pack_" << pack;
return ss.str();
}
Если у вас есть строка, которую вам нужно прочитать и изменить значения внутри, можно использовать аналогичную функцию.
С С++ 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;