Usa std::stringstream
. Il suo operator <<
è sovraccarico per tutti i tipi integrati.
#include <sstream>
std::stringstream s;
s << "(" << c1 << "," << c2 << ")";
storedCorrect[count] = s.str();
Questo funziona come ci si aspetterebbe - allo stesso modo di stampare la schermata con std::cout
. Invece stai semplicemente "stampando" su una stringa. Gli interni di operator <<
si occupano di assicurarsi che ci sia spazio sufficiente e di effettuare tutte le conversioni necessarie (ad esempio, double
a string
).
Inoltre, se si dispone della libreria Boost disponibile, è possibile considerare la ricerca su lexical_cast
. La sintassi sembra molto simile alla normale C++ - stile getta:
#include <string>
#include <boost/lexical_cast.hpp>
using namespace boost;
storedCorrect[count] = "(" + lexical_cast<std::string>(c1) +
"," + lexical_cast<std::string>(c2) + ")";
Sotto il cofano, boost::lexical_cast
è fondamentalmente facendo la stessa cosa che abbiamo fatto con std::stringstream
. Un vantaggio chiave nell'utilizzo della libreria Boost è che puoi passare dall'altra parte (ad esempio, string
a double
) con la stessa facilità. Niente più problemi con atof()
o strtod()
e stringhe in stile C non elaborate.
fonte
2009-07-14 02:50:46
Quali sono gli esempi riportati di seguito: http://www.codeproject.com/KB/recipes/Tokenizer.aspx Sono molto efficienti e alquanto eleganti. –
http://stackoverflow.com/q/29200635/395461 – Shannon