C语言 用递归法将一个整数n转换成字符串。例如,输入 483,应输出字符串“483”。n的位数不确定,可以是任意的整数。
时间: 2023-06-15 17:05:57 浏览: 112
可以使用递归的方法将一个整数n转换成字符串:
```c
#include <stdio.h>
void intToString(int n) {
if (n / 10 != 0) {
intToString(n / 10);
}
printf("%c", n % 10 + '0');
}
int main() {
int n = 483;
intToString(n);
return 0;
}
```
首先判断n是否大于等于10,如果是,则递归地将n/10转换成字符串,然后输出n%10的字符表示。注意,要将n%10转换成字符,可以加上字符'0'。
相关问题
c语言用递归法将一个整数n转换成字符串,例如输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
```
#include<stdio.h>
#include<stdlib.h>
void intToStr(int n,char *str){
if(n/10 == 0){ //递归终止条件
str[0] = n + '0'; //将数字转换成字符
str[1] = '\0'; //字符串结尾
return;
}
intToStr(n/10,str); //递归调用
int len = strlen(str); //获取字符串长度
str[len] = n%10 + '0'; //将数字转换成字符
str[len+1] = '\0'; //字符串结尾
}
int main(){
int n;
printf("请输入一个整数:");
scanf("%d",&n);
char *str = (char*)malloc(sizeof(char)*100); //动态分配内存
intToStr(n,str); //调用函数
printf("转换后的字符串为:%s\n",str);
free(str); //释放内存
return 0;
}
```
c语言用递归法将一个整数n转换成字符串。例如输入483,应输出字符串“483”。n的位数不确定,可以是任意数位的正整数”
以下是用递归法将一个整数n转换成字符串的C语言代码实现:
```c
#include <stdio.h>
void int_to_str(int n, char str[])
{
if (n == 0) {
str[0] = '0';
str[1] = '\0';
return;
}
if (n < 0) {
str[0] = '-';
int_to_str(-n, str+1);
return;
}
int i = 0, temp = n;
while (temp > 0) {
temp /= 10;
i++;
}
str[i] = '\0';
while (n > 0) {
str[--i] = n % 10 + '0';
n /= 10;
}
}
int main()
{
int n = -483;
char str[20];
int_to_str(n, str);
printf("The string is %s\n", str);
return 0;
}
```
首先处理特殊情况,如果n为0,则直接将字符串设为“0”;如果n为负数,则在字符串首位加上符号“-”,并递归处理其绝对值。然后计算n的位数,并将字符串末尾设为NULL,最后按照从高位到低位的顺序将每一位数字转换成字符存储到字符串中。
阅读全文