C语言用递归算法将一个整数n转换成相应的字符串。例如输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数。
时间: 2024-10-27 08:14:54 浏览: 32
C语言中,递归算法用于将整数转换为字符串的过程通常涉及将每一位数字添加到结果字符串中。这里是一个简单的例子,使用了栈来辅助处理:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 递归函数,接收整数和已生成的字符串数组作为参数
char* intToStr(int n, char str[], int base) {
// 基线条件:当n为0时,返回已经构建好的字符串
if (n == 0) {
return str;
}
// 计算当前位上的数字(0~9)
int digit = n % base;
// 将数字转换为字符并追加到字符串数组中
str[base - digit - 1] = '0' + digit; // 避免越界,减去'0'
str[base - digit - 1] >= '0' && str[base - digit - 1] <= '9') ? str[base - digit - 1] : '\0'; // 确保字符正确
// 递归调用,处理去掉最低位后的整数
intToStr(n / base, str, base);
// 返回包含完整字符串的结果
return str;
}
int main() {
int num = 483;
const int base = 10; // 十进制
char result[100]; // 结果字符串足够大以容纳任意位数
strcpy(result, ""); // 初始化为空字符串
char* finalStr = intToStr(num, result, base);
printf("整数 %d 转换成字符串形式为:%s\n", num, finalStr); // 输出转换后的字符串
return 0;
}
```
阅读全文