- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数组和风格字符串
第3章 数组和C 风格字符串 由除了前面介绍的基本数据类型外,C++还提供了复合数据类型以解决相对复杂的问题,这些数据类型是基于基本的整型、浮点型、char型和bool型等创建的,本章将介绍数组的相关知识很使用方法,以及数组与C风格字符串的关系。 3.1 什么是数组 将固定数目的同类型数据有序地组合在一起,在内存中连续排列,并用同一个名字来标识,这样一个结构称为数组。数组有以下几个特征: 用一个名字命名一组数据。 这组数据类型相同。 这组数据的数目是确定的。 每个数据称为数组的元素,每个元素在数组中有一个位置,即该元素在数组中的顺序关系,元素在内存中是连续排列的,换言之,数组占有一片连续的内存空间。 程序依靠元素在数组中的位置信息对元素进行访问,即数组名加下标的形式。 和基本数据类型一样,要使用一个数组,必须先对其进行声明,声明的格式为: 类型 数组名[N1, N2,… Nn]; 3.2 维数组 一维数组也称向量,用以组织具有一维顺序关系的一组同类型数据,如某个班级所有人的成绩信息,和基本数据类型一样,在使用数组前必须先对其进行声明。 3.2.1 一维数组的声明 一维数组的声明形式为: 类型 数组名[N1]; 其中,N1必须是个整型常量,如5、10或const整型量。假定班级里有10个人,可以用下列形式声明一个数组以存储每个人的成绩: int age[10]; 这样,编译器将一次性开辟10个存放int型数据的连续内存空间,省却了声明10个int变量的麻烦,采用一维数组存储用户输入的10个数据,很显然,用一维数组处理具有顺序关系的数据比用简单变量要方便得多。 3.2.2 初始化一维数组 代码3-1通过用户输入数据对数组中的运算进行赋值,其实,在声明一个数组的同时也可以对各元素进行初始化,初始化表达式按元素的顺序依次写在一对花括号中,元素中间用逗号隔开,代码3-2与代码3-1是等价的。 3.2.3 一维数组应用举例 对数组中的元素进行处理,最有效的途径就是使用循环结构,前面的代码示例中已经粗略地体现了如何访问数组元素,下面的例子用以寻找数组中元素的最大值和最小值,见代码3?3 。 3.2.4 数组操作注意事项 C++不允许对数组进行整体操作,像数组比较,数组数据的输入输出等,必须通过逐一访问数组元素来完成,下列一些用法是不合法的: 3.3 C 风格字符串 在第2章中已经介绍了字符串常量的知识,C语言中的字符串是用一维字符型数组来实现,编译器把每个字符串理解为一个以’\0’(空字符,null character)为结束符的一维字符数组,这种类型的字符数组常被称为C风格字符串,C++语言借鉴了这一用法。 3.3.1 C 风格字符串的声明 声明一个C风格字符串,使其内容为“I Love C++!”,代码如下: char str[]={‘I’,’ ’,’L’,’o’,’v’,’e’,’ ’,’C’,’+’,’+’,’!’,’\0’}; 上述代码在声明数组时没有指定大小,这样,编译器就会自行计算决定数组的大小。对于C风格字符串的声明,推荐采用这种方式,免去了程序员自行计数的麻烦,如果由程序员指定的数组太小,编译器会报错,太大的话就浪费空间。但若在声明语句中无初始化表达式,则应该指出该字符数组的大小。 可以看出,存储一个字符串所需字节数比该串的字符数多1,如存储“Hello”,该串有5个字母,但C风格字符串需要6个字节。而且,上述声明方式看上去很麻烦,要一个字母一个字母地用单引号包裹起来,还要记着后面的’\0’,实际上,C++还提供了另一种声明C风格字符串的方法――使用字符串常量,如: char str[]=”I Love C++!”; 3.3.2 字符数组的cin和cout 仅仅由字符组成,但结尾不是’\0’的数组不是C风格字符串,如: char str[]={‘H’,’e’,’l’,’l’,’o’}; 如此声明的str只能称为字符数组,空字符’\0’对C风格字符串十分重要,很多与之对应的处理函数和对象(包括cout和cin),都逐个处理C风格字符串的字符,直到遇到空字符为止,因此,对于“char str[]={‘H’,’e’,’l’,’l’,’o’};”,cout在输出5个字符后,还会继续输出内存中后面字节的内容,直到遇到空字符为止,这时输出结果是不确定的,但由于内存中存在大量的空字节,所以这个过程应该可以很快停止。 可以将C风格字符串(甚至是普通的字符数组)当成一个整体来进行输入输出操作,见代码3?4。 3.3.3 get()函数和getline()函数 那么如何将含空格的字符串读到C风格字符串中呢?这要用到istream类中提供的getline()和get()函数,两个函数都用于读入一行输入,直到遇到换行符,
您可能关注的文档
- 四年级语文阅读与写作练习题1.doc
- 所谓白条财务上指非正式单据(《现代汉语词典》解释).doc
- 四年级阅读短文坐进观天的青蛙.doc
- 所谓英国绅士的概念.doc
- 教育部课题(完全搜索自网络收藏)2.4.1平面向量数量积的物理背景及其含义.ppt
- 四年级音乐上册乐理复习内容.doc
- 四年语文7-8单元复习卷-于晓冬11.12.15.doc
- 房地产项目经典宣传片拍摄文稿.doc
- 所谓的低调就是不露痕迹的高调.doc
- 所谓青春,是因不保留;所谓人生,是因不完美.doc
- 高端制造行业策略报告:成熟制造扬帆出海,创新引擎加速国产替代——全球价值链重构下的结构性机遇.pptx
- 化工行业年度策略深度剖析:跨越行业低点,精准把握复苏契机,拥抱确定性周期成长机遇.pptx
- 钢铁行业策略:供需矛盾与结构升级交织,以韧性增长行稳致远.pptx
- 煤炭行业策略深度剖析:煤价回调蓄势待发,旺季需求释放可期,精准布局投资先机.pptx
- 高三第一学期语文第一次学情检测试卷.docx
- 2024-2025高二下学期名校考试题【文言文阅读】精选一.docx
- 2024-2025学年度高一下学期试题【信息类文本阅读】精选一.docx
- 2024-2025学年度高一下学期试题【语言文字运用】精选一.docx
- 2024-2025高二下学期名校考试题【文学类文本阅读】精选一.docx
- 【小说阅读】2025届高三下4月名校模考试题精选.docx
最近下载
- GB∕T38305-2019头部防护救援头盔..pdf
- 2024届湖南省张家界市慈利县高一物理第二学期期末达标检测模拟试题含解析.doc VIP
- 通信铁塔标准图集(V1.0).pdf VIP
- 选矿试验技术方法 第5部分:浮选.docx VIP
- 《选矿试验技术方法第4部分:磁选》.pdf VIP
- 上市公司董事会秘书工作手册-信息披露政策法规汇编(通用) 20240627.pdf VIP
- 高标准农田设计实施方案(技术标340页).doc VIP
- 1688店铺运营计划方案.pdf VIP
- 《医学伦理学》教案 第四章 医学伦理学的规范体系.pdf VIP
- 《选矿试验技术方法 第1部分:破碎筛分》.pdf VIP
文档评论(0)