你如何快速连接一个类似于连接字符串的整数

时间:2013-07-28 10:34:48

标签: c++ integer concatenation

在c ++中,有任何函数可以连接我可以编写的int或一小段代码来实现这一点。到目前为止我发现的所有东西似乎都不太复杂。我只是想知道,因为使用字符串你只需将两个字符串加在一起,所以任何整数等于。

3 个答案:

答案 0 :(得分:2)

使用std::to_string

#include <string>
std::string s("helloworld:") + std::to_string(3);

输出:helloworld:3

或者你可以使用stringstream来实现你想要的东西

#include <sstream>
std::string s("helloworld:");

std::stringstream ss;
ss << 3;
s += ss.str();

输出:helloworld:3

答案 1 :(得分:1)

我不知道你想要实现什么

是这样的吗?

#define WEIRDCONCAT(a,b) a##b
int main()
{
cout<<WEIRDCONCAT(1,6);
}

或者可能是这样:

int no_of_digits(int number){
    int digits = 0; 
    while (number != 0) { number /= 10; digits++; }
    return digits;
}
int concat_ints (int n, ...)
{
  int i;
  int val,result=0;
  va_list vl;
  va_start(vl,n);

  for (i=0;i<n;i++)
  {
    val=va_arg(vl,int);
    result=(result*pow(10,no_of_digits(val)))+val;
  }
  va_end(vl);
 return result;
}

int val=concat_ints (3,  //No of intergers
                     62,712,821); //Example Outputs: 62712821

答案 2 :(得分:0)

我能想到的最快的方式:

#include <string>

string constr = to_string(integer1) + to_string(integer2);
int concatenated = stoi(constr);