char* function(int a) ; 是转换函数 当得到整形参数a 会返回一个指向目标字符串的char指针,,
该递归函数的原理是:
1)递归中间步骤:若当前整数参数a 不为个位。。则将a/10代入char* function(int a) ; 并等待调用的函数被跳出后 将当前整数参数a的最低位存入字符串。
2)递归最底层情况:最若该整数为个位 则直接转换为ascii码;并存入字符窜。。递归结束
#include
char mychar[100];//定义一个无限大的字符数组来存放所生成的字符
int i=0; //计数器初始化
char* function(int a)//定义递归函数
{
if (a<10) // base case,最底情况
{
mychar[i++]=char(48+a); //转化为字符串使用ASCⅡ码来转换
return mychar; //函数返回,程序运行到到调用它的语句的下句
}
function(a/10); //递归方式, 将整数的最后一位消去后代入递归函数
mychar[i++]=char(48+a%10); //转化为字符串使用ASCⅡ码来转换
return mychar; //函数返回,程序运行到到调用它的语句的下句
}
void main()
{
char*a;
int num=0;
scanf("%d",&num);
a=function(num);
printf("转化为字符串后:%s",a);
}
#include
int a[100];
int k=0;
void f(int x)
{
int i;
a[k]=x%10;
if((i=x/10)!=0)
{
k++;
f(i);
}
}
void main()
{
int l;
scanf("%d",&l);
f(l);
int j;
for(j=k;j>=0;j--)
putchar(a[j]+'0');
}
ASCLL码