Blog Archives

C++ concatenate strings with stream or sprint

There are many different ways to achieve this, but in my opinion the best method for something this commonly used is a solution that does not require additional external dependencies.. However, see reference at the bottom of this post for some other good solutions which are optimized for speed and brevity.

//declare our variables to concatenate
std::string name="somename";
int age = 100;
std::string result;

//if it's for basic console output
std::cout << "name:" << name << " age:" << age;

//using stringstream
std::stringstream ss;
ss << "name:" << name << " age:" << age;
result = ss.str();
std::cout << result;

//using ostringstream
std::ostringstream os;
os << "name:" << name << " age:" << age;
std::cout << os.str();

//using strintf
char numstr[21]; // enough to hold all numbers up to 64-bits
sprintf(numstr, "%d", age); //convert age to string
result = name + numstr; //concatenate

Stackoverflow (forum),