我原以为这很简单,但它出现了一些困难。如果我有
std::string name = "John";
int age = 21;
我如何结合他们得到一个单一的字符串“John21”?
我原以为这很简单,但它出现了一些困难。如果我有
std::string name = "John";
int age = 21;
我如何结合他们得到一个单一的字符串“John21”?
当前回答
这是最简单的方法:
string s = name + std::to_string(age);
其他回答
std:: ostringstream
<sstream>#include std::ostringstream s; 与<<“约翰”<<年龄; std::string query(s.str());
std:: to_string (C + + 11)
std::string查询("John " + std::to_string(年龄));
boost:: lexical_cast
# include <刺激/ lexical_cast.hpp > std::string查询("John " + boost::lexical_cast<std::string>(age));
你可以像这样使用C函数itoa():
char buf[3];
itoa(age, buf, 10);
name += buf;
在我看来,最简单的答案是使用sprintf函数:
sprintf(outString,"%s%d",name,age);
作为一行:name += std::to_string(年龄);
常见答案:itoa()
这很糟糕。正如这里指出的,Itoa是非标准的。