我原以为这很简单,但它出现了一些困难。如果我有

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是非标准的。