2013-07-28 26 views
0

在C++中是否有任何函数来连接一个int或一小段代码,我可以写这将做到这一点。迄今为止我发现的一切似乎都是非常复杂的。我只是想知道,因为用字符串你只需将两个字符串加在一起,所以任何整数都是等价的。你如何快速连接一个类似于连接字符串的整数

+0

什么整数的范围是多少? – sje397

+0

0到9.大整数是不同的吗? – user2420395

+0

不,没有现有的标准功能来做它,因为它不是人们通常需要做的事情。如果你想连接个别数字,那么你乘以10,添加一个数字,然后重复(假设你想连接10)。 – jamesdlin

回答

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 
0

我能想到的做它的最快方法:

#include <string> 

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

使用std::to_string

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

输出:HelloWorld的: 3

或者你可以使用字符串流来arhive你想要什么

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

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

输出:的HelloWorld:3