c ++更改数字位?

c++ changing number digits places?

我有一个 3 位数的号码,假设 n = 135。我需要更改号码中的数字,以便获得不同的号码。将第一个数字放在中间以获得 315 的结果。我想我要做的第一件事就是提取单独的数字,然后我就这样做了

int n = 135;  
int a, b, c, x;

a = n / 100;
b = n % 100 / 10;
c = n % 10;

现在我有单独的数字值,但不知道如何将它们全部放在一个变量中以获得 x = 315。

编辑: 写完就明白了。不知道如何在不选择答案的情况下将 post 标记为已解决。像这样解决(如果其他人遇到同样的问题):

x = b * 10 + a;
x = x * 10 + c;
cout << "Changed number: " << x << endl;

乘法是你的朋友。

x = b * 100 + a * 10 + c;

所以,好的。我这样做的方式,如果这不起作用,请纠正我,将它变成一个字符串,然后重新排列这样的东西。为此,我们可以像这样使用字符串格式化库:

string number = to_string(135);

然后,你可以这样做:

char swap;
swap = number[0];
number[0] = number[1];
number[1] = swap;

这将交换第一项和第二项,使之成为 315。其他项按逻辑进行。完成后,只需将字符串转换回 int,如下所示:

int number = atoi(number.c_str());