05-数组-3资料.ppt

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * C语言程序设计项目教程 主编:康玉忠、甘宏、段传林 副主编:扶卿妮、樊红珍、李彬 中国商业出版社 字符数组 项目任务 在我们使用软件word编辑文档的时侯,经常会用到统计单词个数的功能。现在,我们编程来实现统计英文单词数。 为了简化问题,我们假设一个句子只由小写字母和空格组成,没有标点符号,通过程序,来实现计算出这个句子里面的单词数。 程序结果示例: 字符数组 项目目标 熟悉字符数组与字符串 熟悉字符串处理 字符数组 技术要点 题目要求我们通过编程来统计一条语句(即字符串)的单词数,首先,就是要将用户输入的语句读取,并存入数组里面,接下来,就是解决如何如何统计单词数的问题了,通常的思维是这样的,我们可以以空格为基准,如果遇到了空格,就进行一下标记,等到遇到字母时,我们就可以认为这个算为一个字母单词了,比如“i am student”里面有两个空格,在字母i后面有一个空格,我们就统计am为一个单词,之后也有一个空格,我们也可以讲student作为一个单词进行统计,现在就是统计两个单词了,可是这条语句有三个单词,我们不妨可以认为在i前面也有个“隐形的空格”,这样也方便了我们的处理,而且,要这样做,还有助于增加程序的健壮性,具体是如何体现的呢?请同学们考虑一下,从用户输入数据的角度出发,探讨一下用户还有可能输入那些例子。 字符数组 技术要点 1、程序设计思路 (1)、数据组织。 按照上面说的,还记得一维数组吗?在这里我们如何存储用户输入的字符串呢?在c语言中,我们可以定义一个字符型(char)数组,来存放用户输入的语句,这就是字符型数组,在c语言中常常用字符型数组来存放字符串。 (2)、数据的处理与操作。 首先我们要读取用户输入的语句,我们用gets函数来获取并保存在字符型数组里面,然后再访问这个字符型数组里面的每个元素,依照上面提示的算法,进行统计单词数,最后就输入单词的数。 本项目采用流程图描述,如图5-5所示。 字符数组 图5-5 单词统计项目流程图 结束 定义变量,字符型数组 输入英文语句 输出相应计算结果 开始 统计有多少个单词数 字符数组 程序代码 #includestdio.h #includestring.h main() { char ch[1000];//定义一个字符串数组,用于存储用户输入的语句 int count=0;//用于保存有多少个变量 printf(请输入要统计单词的语句:\n); gets(ch);//读取用户输入的语句 for(int i=0,flag=1;istrlen(ch);i++)//定义flag变量,用于标示是否出现空格. { if(flag==1 ch[i]!= ) //如果这个元素不为空,而且,在这个元素前面有空格,那么就可以算有一个单词 { count++; flag=0; } else if(ch[i]== ) { flag=1; } } printf(\n); puts(ch);//先打印出用户输入的语句 printf(这条语句的单词数为%d :\n,count); } 字符数组 程序说明 首先我们定义一个字符型数组,用来存放用户输入的语句,关于字符型数组,你可以想一下int型的数组,用类比法推断一下,字符型数组也是每个元素就存储一个字母,这样一直连续存储下去。接下来,就是解决如何读取并将数据保存到数组变量里面的问题了,程序里面用gets()函数,为什么要用gets()函数呢?为什么不用scanf()呢?我们注意到,用户输入的是一连串的字符串,里面包括了空格,也就是说scanf函数读取的数据当遇到空格就停止,而gets函数遇到回车(\0)才停止,所以针对这个项目,我们要用gets()函数。 在for循环语句中,strlen(ch)这是什么意思呢?我们可以通过for循环语句的语法来推断strlen(ch)的作用,变量i从0开始,要有个结束标志吧?strlen(ch)的返回值就可以认为是变量i的终止范围。其实strlen(ch)这个函数返回的就是字符型数组ch的实际长度,我们的目的是要从字符串的开始读取到字符串的尾部,即从第0个元素读取到字符串结束,所以我们就用strlen(ch)这个函数返回用户输入的字符串的长度。 在for循环初始化的时候,我们注意到了定义flag变量,并赋初值为1,为什么要这样做呢?flag变量就是用来标示是否有出现空格,我们在前面讲到了,可以默认

文档评论(0)

此项为空 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档