用递归的方法将一个整数 n 转换成字符串。例如,输入 483,输出应为字符串"483"。n 的位数不确定,可以是任意位数的整数。c语言
时间: 2024-05-13 19:17:08 浏览: 19
下面是一个使用递归的 C 语言程序,将整数 n 转换为字符串:
```c
#include <stdio.h>
void int_to_str(int n, char str[], int len) {
if (n == 0) {
str[len] = '\0'; // 在字符串末尾添加空字符
return;
}
int digit = n % 10;
str[len-1] = digit + '0'; // 将数字转换为字符并存储到字符串中
int_to_str(n / 10, str, len-1); // 递归调用函数,处理剩余的数字
}
int main() {
int n = 483;
char str[20]; // 假设最多有 20 位数字
int_to_str(n, str, 3); // len = 3,因为 n 有 3 位数字
printf("The string representation of %d is %s\n", n, str);
return 0;
}
```
程序首先定义了一个 `int_to_str` 函数,用于将整数 n 转换为字符串。该函数需要三个参数:整数 n,字符数组 str 和数组长度 len。程序中假设最多有 20 位数字,因此可以将 len 初始化为 20,然后在递归过程中逐步减小 len 的值。
在函数体中,先判断 n 是否为 0,如果是,说明已经处理完所有数字,可以在字符串末尾添加空字符 '\0' 并返回。否则,先取出 n 的个位数字,将其转换为字符并存储到 str 数组中。然后递归调用函数,处理剩余的数字,直到 n 变为 0。
最后,在主函数中调用 int_to_str 函数将整数转换为字符串,并打印结果。