c语言把一个int类型的数字的每个位上的数字存到指针数组中
时间: 2024-10-15 21:26:19 浏览: 62
简单分析C语言中指针数组与数组指针的区别
在C语言中,如果你想将一个整数`int`分解成每一位的数字并存储到一个指针数组中,你需要遍历该整数的二进制表示,并将每一位转换为对应的字符。可以借助`itoa()`函数或者自定义函数实现。这里是一个简单的示例,假设我们有一个整数`num`:
```c
#include <stdio.h>
#include <string.h>
// 自定义函数将整数每位数字存入字符数组
void int_to_chars(int num, char *arr) {
static char result[20]; // 预留足够的空间
sprintf(result, "%d", num); // 转换为字符串
arr[0] = '\0'; // 初始化数组末尾为结束符
for (int i = strlen(result) - 1; i >= 0; i--) {
arr[i] = result[i]; // 存储每一位数字
arr++; // 指针向前移动
}
}
int main() {
int num = 12345;
char *ptrArr[] = { &arr[0], &arr[1], &arr[2], &arr[3], &arr[4] }; // 创建指向数组元素的指针数组
int_to_chars(num, arr);
for (int i = 0; i < sizeof(ptrArr) / sizeof(*ptrArr); i++) {
printf("%c ", *ptrArr[i]); // 打印每一位数字
}
return 0;
}
```
运行上述程序,你会看到输出类似于 `5 4 3 2 1` 的结果。
阅读全文