将整数转换成字符串输出

要求:

用递归法将一个整数 number 转换成字符串。n的位数不确定,可以是任意位数的整数。

例如:输入 12345 ,输出字符串 “12345”。

/******************************************************************************************* ** 函数名称: ConvertNum2String() ** 作 者: 张月华 ** 版 本: 1.0.0 ** 日 期: 2011-6-16 ** 功能描述: 用递归法将一个整数 number 转换成字符串。n的位数不确定,可以是任意位数的整数。 ** 被本函数调用的函数清单: ** 调用本函数的函数清单: ** 被访问的表: 无 ** 被修改的表 : 无 ** 输 入: int number --- 整数 ** 输 出: char string_out[] --- 转换结果 ** 返 回 值: 无 ** 其 他: ** 修改历史: 1. 修改时间: 修 改 者: 版 本: 修改简述: 2. ...... *********************************************************************************************/ void ConvertNum2String(int number,char string_out[]) { static int i = 0,j = 0,k = 0; /* 静态局部变量在编译时分配内存,即只赋值一次,在程序运行时候它已有初值 */ /* 所以每次递归调用的时候并不会影响到此值,下一次调用直接从if开始 */ if((i=number/10) !=0 ) /* 求到number的位数为1位,即0~9 */ { k++; /* 递归调用次数,比位数少1 */ ConvertNum2String(i,string_out); /* 递归调用 */ } string_out[j++]=number % 10 + '0'; /* 计算这个数字的ASCII码 */ string_out[k+1]='/0'; /* k比数字位数少1,添加字符串结束标记 */ }

以输入12345为例说明:

递推过程:

k i number

1 1234 12345

2 123 1234

3 12 123

4 1 12

5 01

递归4次之后,当i=5时,递归调用结束;

回推过程:

number=1 j=0string_out[0]=1 string_out[5] = '/0'

number=12 j=1string_out[0]=2 string_out[5] = '/0'

number=123 j=2string_out[0]=3 string_out[5] = '/0'

number=1234 j=3string_out[0]=4 string_out[5] = '/0'

number=12345 j=4string_out[0]=5 string_out[5] = '/0'

至于输入的number为负数,只要在main()中将其变为正,然后输出负号“-”即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值