kan*_*tor 15 c++ arrays integer
我想将一个整数转换为数组,所以它看起来如下所示:
int number = 123456 ;
int array[7] ;
Run Code Online (Sandbox Code Playgroud)
结果:
array[0] = 1
array[1] = 2
...
array[6] = 6
Run Code Online (Sandbox Code Playgroud)
小智 9
只需使用模运算:
int array[6];
int number = 123456;
for (int i = 5; i >= 0; i--) {
array[i] = number % 10;
number /= 10;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过以下方式提取数字的最后一位数字:
int digit = number % 10;
number /= 10;
Run Code Online (Sandbox Code Playgroud)
请注意,您还应该检查是否number为正。其他值需要额外处理。
在我提出的内容中,integerToArray函数返回一个从整数值转换的向量.你也可以用main函数测试它:
#include <iostream>
#include <vector>
using namespace std;
vector <int> integerToArray(int x)
{
vector <int> resultArray;
while (true)
{
resultArray.insert(resultArray.begin(), x%10);
x /= 10;
if(x == 0)
return resultArray;
}
}
int main()
{
vector <int> temp = integerToArray(1234567);
for (auto const &element : temp)
cout << element << " " ;
return 0;
}
//outputs 1 2 3 4 5 6 7
Run Code Online (Sandbox Code Playgroud)
我现在能想到的最简单的方法是:
char array[40];
int number = 123456;
memset(array, 0x00, sizeof(array));
sprintf(array, "%d", number);
Run Code Online (Sandbox Code Playgroud)
此外,您可以将每个数字转换为 int,只需将 char 值减去 0x30。
编辑:如果这是作业,你的老师可能会要求你使用 % 运算符编写程序(例如 12 % 10 = 2)。如果是这种情况,那就做好功课;-)