输入一个整数,将其转换为字符串输出

输入一个整数,将其转换为字符串输出

ID:14151543

大小:78.00 KB

页数:4页

时间:2018-07-26

输入一个整数,将其转换为字符串输出_第1页
输入一个整数,将其转换为字符串输出_第2页
输入一个整数,将其转换为字符串输出_第3页
输入一个整数,将其转换为字符串输出_第4页
资源描述:

《输入一个整数,将其转换为字符串输出》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、例9-15编写函数,输入一个整数,将其转换为字符串输出。例如,输入整数86556,输出字符串"86556"。首先确定函数头,函数输入一个long型整数,输出一个char型字符数组,因此可以定为voidlong2string(longlNum,charchWord[])。注意这里的整数可能比较大,不要定为int型。函数中,可以首先利用循环和%和/运算符,依次取得整数的每个位。思路如下:例如86556,我们可以将其对10取余,得到个位6;将86556除10余8655,继续对10取余,得到十位5;……以此类推,直到该数变为0为止。这样就可以将

2、整数的每个位分离出来。在上述的循环过程中,将分离出的数字依次保存到字符数组中。但是要注意,字符数组中保存的是字符,是数字的ASCII码,而不是数字本身的值。因为ASCII码表中阿拉伯数字的码值是连续的,因此一个常用的技巧是,字符0加数字值即为该数字的ASCII码值。上述过程结束后,字符数组里存放了整数的每个位,但是不符合题目的要求,顺序正好相反。这可以用一个循环对数组进行转置:字符串第一个元素和最后一个元素对换;第二个元素和倒数第二个元素对换;……程序循环进行字符串长度/2次(如果字符串长度为奇数,中间元素正好不用处理)。数据要求问题中

3、的常量:无问题的输入:longlNum/*输入的long型数据*/问题的输出:charchWord[50]/*转换后的字符串*/初始算法1.初始化变量lNum;2.调用函数得到字符串;3.程序输出结果后退出。算法细化步骤2的细化2.1初始化临时变量2.2lNum!=0时,循环执行得到各个位的数字2.2.1转换数字ASCII码2.2.2i变量增12.2.3lNum=lNum/10,本步骤的目的有两个,一是结束循环,二是正确的得到数字2.3字符串最后加标志2.4循环进行数组的逆序2.5结束流程图版权所有:东北大学计算中心图5-15程序执行流

4、程图程序代码如下:#include“stdio.h”voidlong2string(longlNum,charchWord[]){inti=0,j;charchTemp;/*依次取整数的末位,存入chWord*/while(lNum!=0){chWord[i]='0'+lNum%10;/*转换为数字的ASCII码*/i++;lNum=lNum/10;}/*字符串最后一位加''*/chWord[i]='';/*将字符串逆序*/版权所有:东北大学计算中心for(j=0;j

5、rd[j]=chWord[i-1-j];chWord[i-1-j]=chTemp;}}main(){/*lNum是输入的整数,chWord是转换后的字符串*/longlNum;charchWord[50];/*输入一个整数*/printf("Pleaseinputainteger:");scanf("%ld",&lNum);/*调用函数进行处理*/long2string(lNum,chWord);/*打印输出结果*/printf("Theoutputedstring=%s",chWord);}分析运行结果为:Pleaseinpu

6、tainteger:1972Theoutputedstring=1972函数long2string也可以使用递归函数实现,下面是使用递归和指针的一个例子(main函数可以不做改动):voidlong2string(longlNum,char*pszWord){/*如果lNum等于0,不用继续递归*/if(lNum==0){/*字符数组的第一个单元是字符串结束符,后续的过程要根据它添加整数的位*/*pszWord='';return;}/*先递归处理lNum前面的位*/long2string(lNum/10,pszWord);/*再将

7、lNum的最后一位添加到字符串后*/while(*pszWord)pszWord++;*pszWord++='0'+lNum%10;*pszWord='';/*不要忘记处理字符串结束符*/}版权所有:东北大学计算中心版权所有:东北大学计算中心

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。