0

C ++には、intまたは短いコードを連結する関数があり、これを行うことができます。これまでに見つけたものはすべて、不必要に複雑に思えます。文字列を使用すると、2つの文字列を一緒に追加するだけなので、整数の同等物.

4

3 に答える 3

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

于 2013-07-28T10:48:13.107 に答える
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
于 2013-07-28T10:39:47.553 に答える
0

私が考えることができる最速の方法:

#include <string>

string constr = to_string(integer1) + to_string(integer2);
int concatenated = stoi(constr);
于 2013-07-28T10:46:40.407 に答える