我想连接两个整数,即不添加它们的值,而是加入它们。
例如:
int a=2,b;
cin>>b;
a=a+3;
a
应该是23
而不是5
。
我该怎么做?
答案 0 :(得分:4)
仅仅因为它们看起来像整数,并不意味着它们是整数。在您的情况下,您正在尝试对整数执行字符串操作。你真正想要的是使用std::string
:
std::string a("2");
std::string b;
std::cin >> b;
a += b;
如果您希望将结果用作int
,则可以在C ++ 11中使用std::stoi(a)
。在C ++ 03中,您可以这样做:
std::stringstream ss(a);
int value;
ss >> value;
答案 1 :(得分:2)
这会给你你想要的东西。
std::stringstream s;
s << 1 << 2 << 3;
int out;
s >> out;
std::cerr << out << std::endl;
The String Formatters of Manor Herb Sutter的农场值得一看。
答案 2 :(得分:1)
一种简单的方法是将数字乘以10,然后加上新的整数。
编辑:其他答案更准确。在数字可以大于10的情况下,您需要将它们视为字符串,然后转换回int(c_str()上的itoa)。如果你想把它们保持为int,你将需要知道哪个10的幂包含你的新值,并将该数乘以10的幂,以便为新数字留出足够的空间。
答案 3 :(得分:0)
如果您不想将数字转换为字符串,只需将之前的值乘以10:
a = a * 10 + b;
答案 4 :(得分:0)
int a=2,b;
cin>>b;
a=a+3;
你想要一个23岁?
你的b在你的add语句中被完全忽略,你有a=2
,所以a+3
真的是2 + 3,所以2 + 3,如果我记得数学大约是5。
答案 5 :(得分:0)
在C中,您可以使用 int to alphabet function itoa(int1,str1,10)
。
将两个整数连接为字符串的代码:
#include <string>
#include <iostream>
using namespace std;
int main(void)
{
int int1,int2;
char *str1,*str2;
str1 = new char[1];
str2 = new char[1];
string str;
cout<<"concatenate two integers as strings \n";
cout<<"Enter first number > ";
cin>>int1;
cout<<"Enter second number > ";
cin>>int2;
str=string(itoa(int1,str1,10)) + string(itoa(int2,str2,10));;
cout<<"\n "<<str <<"\n";
cout<<" \nPress any key to continue\n";
cin.ignore();
cin.get();
return 0;
}
输出:
concatenate two integers as strings
Enter first number > 2
Enter second number > 3
23
Press any key to continue