Использование std::stringstream
. Его operator <<
перегружен для всех встроенных типов.
#include <sstream>
std::stringstream s;
s << "(" << c1 << "," << c2 << ")";
storedCorrect[count] = s.str();
Это работает, как и следовало ожидать - так же, как при печати на экране с std::cout
. Вместо этого вы просто «печатаете» на строку. Внутренние элементы operator <<
позаботятся о том, чтобы обеспечить достаточное пространство и сделать необходимые преобразования (например, double
- string
).
Кроме того, если у вас есть библиотека Boost, вы можете рассмотреть возможность поиска в lexical_cast
. Синтаксис выглядит как нормальный C++ - стиль бросает:
#include <string>
#include <boost/lexical_cast.hpp>
using namespace boost;
storedCorrect[count] = "(" + lexical_cast<std::string>(c1) +
"," + lexical_cast<std::string>(c2) + ")";
Под капотом boost::lexical_cast
в основном делает то же самое, что мы сделали с std::stringstream
. Ключевым преимуществом использования библиотеки Boost является то, что вы можете пойти другим путем (например, string
до double
) так же легко. Больше не нужно возиться с atof()
или strtod()
и необработанные строки в стиле C.
Как насчет некоторых примеров из следующих источников: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Они очень эффективны и несколько элегантны. – 2010-11-02 05:03:53
http://stackoverflow.com/q/29200635/395461 – Shannon