用C语言编写一递归函数将一个整数n转换成字符串,例如输入483,应输出"483"。n的位次不确定,可以是任意位数的整数。
时间: 2024-12-02 13:20:03 浏览: 6
在C语言中,我们可以通过递归的方式将整数转换为字符串。下面是一个简单的实现,它通过不断地除以10并记录余数的方式来获取每一位数字,然后将它们拼接在一起形成字符串。
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
// 辅助函数用于得到一位数字
char digit(int n) {
return (n % 10) + '0'; // 将十进制数转换为字符,加'0'是因为ASCII码从0开始
}
// 递归函数将整数转换为字符串
char* int_to_string(int n, char* str, int len) {
if (len == 0) { // 当字符串长度为0时,表示第一位数字已添加,结束递归
str[0] = '\0'; // 添加空字符结束字符串
return str;
} else {
str[len] = digit(n);
str[len+1] = '\0'; // 继续添加下一位数字,并加上终止符
return int_to_string(n / 10, str, len + 1); // 递归调用,处理剩余位数
}
}
int main() {
int num = 483;
char result[50]; // 预先分配足够大的数组存储结果
strcpy(result, int_to_string(num, result, 0)); // 开始转换
printf("Integer %d as string is \"%s\"\n", num, result);
return 0;
}
阅读全文