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

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

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


当前回答

这是最简单的方法:

string s = name + std::to_string(age);

其他回答

在c++ 20中,你可以做到:

auto result = std::format("{}{}", name, age);

与此同时,你可以使用{fmt}库,std::format基于:

auto result = fmt::format("{}{}", name, age);

声明:我是{fmt}库和c++ 20 std::格式的作者。

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

例子:

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

name += std::to_string(age);

std::cout << name;

输出:

John21

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

在我看来,最简单的答案是使用sprintf函数:

sprintf(outString,"%s%d",name,age);

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

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