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

std::string name = "John";
int age = 21;

我如何结合他们得到一个单一的字符串“John21”?


当前回答

如果你有c++ 11,你可以使用std::to_string。

例子:

std::string name = "John";
int age = 21;

name += std::to_string(age);

std::cout << name;

输出:

John21

其他回答

#include <iostream>
#include <sstream>

std::ostringstream o;
o << name << age;
std::cout << o.str();

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));

如果你使用MFC,你可以使用CString

CString nameAge = "";
nameAge.Format("%s%d", "John", 21);

托管c++也有一个 字符串格式化程序。

作为一行:name += std::to_string(年龄);

你可以像这样使用C函数itoa():

    char buf[3];
    itoa(age, buf, 10);
    name += buf;