用递归函数将一个整数n转换为字符串
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.用递归函数将一个整数n转换为字符串.
例如:输入438,应输出字符串"438",n的位数不确定,可以是任意位数的整数.//方法一:不使用static型变量
#include
void ltos(long d,char s[],int *i)
{
char t;
if(d<0)d=-d, s[(*i)++]='-'; //若为负则存入负号
t=d%10+'0';
d/=10;
if(d)ltos(d,s,i);
s[(*i)++]=t;
s[(*i)]='\0'; //字符串结束符
}
void main()
{
int i=0;
char str[20];
long int n;
printf("long n=");
scanf("%ld",&n);
ltos(n, str, &i);
printf("string=%s\n",str);
}
//方法二:使用static型变量
#include
#include
void ltos(long d, char s[])
{
char t;
static int i=0;
if(d<0)d=-d, s[i++]='-'; //若为负则存入负号
t=d%10+'0';
d/=10;
if(d)ltos(d, s);
s[i++]=t;
s[i]='\0'; //字符串结束符
}
void main()
{
char str[20];
long int n;
printf("long n=");
scanf("%ld",&n);
ltos(n, str);
printf("string=%s\n", str);
}
//方法三:不使用递归函数
#include
void ltos(long d, char s[])
{
char t;
int i=0, j;
if(d<0)d=-d, s[i++]='-'; //若为负则存入负号do{
s[i++]=d%10+'0';
d/=10;
}while(d);
s[i]=0; //字符串结束符
j=i-1;
for(i=0; i t=s[i]; s[i]=s[j]; s[j]=t; } } //主函数的写法与方法二完全相同。