我原以为这很简单,但它出现了一些困难。如果我有
std::string name = "John";
int age = 21;
我如何结合他们得到一个单一的字符串“John21”?
我原以为这很简单,但它出现了一些困难。如果我有
std::string name = "John";
int age = 21;
我如何结合他们得到一个单一的字符串“John21”?
当前回答
在我看来,最简单的答案是使用sprintf函数:
sprintf(outString,"%s%d",name,age);
其他回答
#include <iostream>
#include <sstream>
std::ostringstream o;
o << name << age;
std::cout << o.str();
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
string itos(int i) // convert int to string
{
stringstream s;
s << i;
return s.str();
}
无耻地从http://www.research.att.com/~bs/bs_faq2.html窃取。
在我看来,最简单的答案是使用sprintf函数:
sprintf(outString,"%s%d",name,age);
在c++ 20中,你可以做到:
auto result = std::format("{}{}", name, age);
与此同时,你可以使用{fmt}库,std::format基于:
auto result = fmt::format("{}{}", name, age);
声明:我是{fmt}库和c++ 20 std::格式的作者。
作为一个与Qt相关的问题,下面是如何使用Qt:
QString string = QString("Some string %1 with an int somewhere").arg(someIntVariable);
string.append(someOtherIntVariable);
字符串变量现在有someIntVariable的值代替%1,someOtherIntVariable的值在结尾。