将 int 转换为 'C' 中的 int[]

标签 c arrays int

我基本上想转换给定的 int 数字并将单个数字存储在数组中以供进一步处理。 我知道我可以使用 % 并获取每个数字并存储它。但问题是,如果我直到运行时才知道 int 的位数,因此我无法分配数组的大小。所以,我不能向后工作(从单位位置)。 我也不想先将数字反向词存储在一个数组中,然后再反转数组。 有没有其他方法可以做到这一点?

例如:int num = 12345; 输出:ar[0] = 1,ar[1] = 2 等等,其中 ar[] 是一个 int 数组。

最佳答案

转换可能不是正确的词。可以取int,动态分配一个新的int[],然后把int的数字存入int[]。我正在使用以 10 为底的对数来计算 num 有多少位数。包含 math.h 以使用它。以下代码未经测试,但可以让您了解该怎么做。

int num = 12345;
int size = (int)(log10(num)+1);

// allocate array
int *digits = (int*)malloc(sizeof(int) * size);

// get digits
for(int i=size-1; i>=0; --i) {
  digits[i] = num%10;
  num=num/10; // integer division
}

关于将 int 转换为 'C' 中的 int[],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005175/

相关文章:

c - 如何在数组中连续写入

php - 使用 Compact 从 Controller 传递数组以查看 Laravel

c - strtok() 的问题

c - 在 C 中使用无符号数据类型

c - 获取要打印到屏幕的 arrayDisplay()_fucntion,这是一个已使用 srand() 填充的数组。

c - libxml2 编写器差异

c - 记事本无法识别换行符 '\n',但可以与制表符等其他特殊字符配合使用

java - For Each 循环首先构建然后检索 JTextField 输入

php - 在 php 中将 float 转换为 int 时丢失数据

c - c中的类型转换