Создать строку C ++ с заданным форматом

0

Я - Objective-C, и иногда мне приходится иметь дело с кодом C/C++. У меня есть функция, написанная в C++, она регистрирует событие с именем, например, Level_12_Pack_10. Я хочу создать динамическую C++ строку, подобную этой, тогда я могу изменить номера уровней и пакетов. В Objective C это легко с некоторыми строками кода: [NSString stringwithformat], но в C++ это немного сложно для меня. Может ли кто-нибудь помочь мне сделать это?

  • 0
    То, что вы хотите, достаточно просто. Покажите нам, что вы пытались. Посмотрите std :: string в stl. Вы можете найти примеры перегрузки оператора ostream <<.
Теги:

2 ответа

1
Лучший ответ

Я не думаю, что C++ поддерживает строки со встроенными переменными переменными. Было бы слишком over-the-top, чтобы класс мог форматировать эту строку. Вероятно, самое близкое, что вы можете получить, это использовать строковые потоки:

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

Если у вас есть строка, которую вам нужно прочитать и изменить значения внутри, можно использовать аналогичную функцию.

  • 0
    Совершенно верно, спасибо
1

С С++ 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;

Ещё вопросы

Сообщество Overcoder
Наверх
Меню