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());
我有一个 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());