c语言把一个int类型的数字的每个位上的数字存到指针数组中,例如把12345存储为[5,4,3,2,1]
时间: 2024-10-15 08:26:21 浏览: 7
在 C 语言中,如果你想将一个整数 `int` 类型的每一位转换成字符数组并存储在指针数组中,你可以通过循环和位操作来实现。这里是一个简单的示例:
```c
#include <stdio.h>
#include <stdlib.h>
void intToChars(int num, char** arr) {
int digit;
*arr = (char*)malloc(sizeof(char) * 6); // 假设最多只有5位,分配6个位置以防进位
for (int i = 0; num != 0; ++i) {
digit = num % 10; // 取余获取最后一位
(*arr)[i] = digit + '0'; // 将十进制转为ASCII码
num /= 10; // 移除最低位
}
(*arr)[i] = '\0'; // 结束字符串
}
int main() {
int number = 12345;
char* chars = NULL;
intToChars(number, &chars);
printf("每位数字表示为:");
for (int j = 0; chars[j] != '\0'; ++j) {
printf("%d", chars[j]);
}
free(chars); // 释放内存
return 0;
}
```
在这个程序里,我们创建了一个 `char` 类型的动态数组,然后通过 `intToChars` 函数将输入的整数 `number` 的每一位提取出来,并转换为对应的 ASCII 字符。注意,在实际应用中,你需要确保处理溢出的情况,因为这个例子假设了整数不超过五位。
阅读全文