首页 > 代码库 > 谭浩强 c程序设计 8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串"486"。n的位数不确定,可以是任意位数的整数。

谭浩强 c程序设计 8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串"486"。n的位数不确定,可以是任意位数的整数。

8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串"486"。n的位数不确定,可以是任意位数的整数。

#include <stdio.h>

char str1[20];
int i=0;
long n;
int main(){
    
    int longToStr(long n);
    char *revstr(char *str, int len);
    printf("请输入一个整数n:\n");
    scanf("%ld",&n);
    char *p;
    longToStr(n);
    p=revstr(str1, i);
    *(p+i)=‘\0‘;
    printf("输出的字符串为:\n");
    puts(p);
    return 0;
}

//字符串翻转函数
char *revstr(char *str, int len)
{

    char * start = str;
    char * end = str + len - 1;
    char ch;

    if (str != NULL)
    {
        while (start < end)
        {
            ch = *start;
            *start++ = *end;
            *end-- = ch;
        }
    }
    return str;
}

int longToStr(long n){
        int a = (int)(n%10);
        str1[i++]=a+48;
        if(n-a!=0)
            {
            n=(n-a)/10;
            longToStr(n);
            }
        else {str1[i]=‘\0‘;
                return 0;    
            }
}

conclusion:

技术分享

谭浩强 c程序设计 8.17用递归法将一个整数n转换成字符串。例如,输入486,应输出字符串"486"。n的位数不确定,可以是任意位数的整数。