对于数字到字符的转化
来源:互联网 发布:淘宝网理发店挂画 编辑:程序博客网 时间:2024/06/14 20:40
举一个简单的例子:
例题:.用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。
以下是此题的代码。
#include<iostream.h>
#include<stdio.h>
int main(){
void convert(int n);
int number;
cout<<"input an integer:"<<endl;
cin>>number;
cout<<"output:"<<endl;
if(number<0)
{
putchar('-');
putchar(' ');
number=-number;
}
convert(number);
cout<<endl;
return 0;
}
void convert(int n)
{
int i;
if((i=n/10)!=0)
convert(i);
putchar(n%10+'0');
putchar(32);
}
对于这个函数,相信大多数人都能够看懂除了convert函数的其他部分。
那么在此,我们就只解释在这个convert函数中所说明的问题。
在这个convert函数中,我们可以看到 if((i=n/10)!=0)
convert(i);
这可以说是一个简单的递归函数,但其中同时也暗藏玄机,
下面请看在这个if函数里面,我们可以假设一下输入的是483,那么他将要运行的顺序是先输出3,在输出8,最后在输出4;
但是我们在运行时输出的明显是483,那么这是为什么呢?
这是因为在c/c++系统中有一个名为“栈”的东西,我们在convert中所要传达数据,都已二进制的形式存在在这里,
而此时他所存入这个栈的顺序为先3,后8,最后4。而他在输出时,是从这个栈里面的最高的那一层开始输出,
及时从4开始输出,后是8,最后是3;
这是一个他的输出问题。
最后的问题就是putchar(n%10+'0');
我们有很多人都在疑惑这个‘0’到底是干什莫的;
我们可以假设这里输入的是3;
那么0的ASCLL代码是48,48加3是51,那麽我们就可以知道在ASCLL中51数值所对应的字符是“3”;
从而这个convert就在这里可以输出字符。
- 对于数字到字符的转化
- 字符与数字的相互转化
- 将字符转化为对应的数字
- 字符与数字之间的转化
- 数字转化成特殊字符的 方法 !
- 字符数组与任意数字的转化
- 对于简单的将数字转化为字符串
- 数字字符转化整数
- 数字字符转化整数
- 字符转化为数字
- 字符格式的数字转化为整型数字
- 数字字符与数字之间的相互转化
- _tcstol 字符串到数字的转化
- _tcstol 字符串到数字的转化
- python 字符数字相互转化
- 字符数组,字符串、数字转化
- Python 字符ASCII与数字之间的转化
- 一串数字字符转化成对应的整形数
- Qt集成到VS2008里面
- 架构师能力--位出色的程序员(一)
- 自己的底层代码库(十二)——单例类
- ASP For Jscript 无组件上传类 V 1.0
- 成长型公司的存储架构
- 对于数字到字符的转化
- Android NDK 用C语言创建第一个本地应用程序
- ABAP增强查找方法
- 【Linux基础】系统相关命令
- Javascript 面向对象编程(一):封装
- 利用信号量共享内存
- 【原创】生成编写DLL并使用DLL文件
- Composite 组合模式1
- javascript获取url中的参数