visualstudio学习数组和字符串

上传人:宝路 文档编号:48103291 上传时间:2018-07-09 格式:PPTX 页数:19 大小:133.30KB
返回 下载 相关 举报
visualstudio学习数组和字符串_第1页
第1页 / 共19页
visualstudio学习数组和字符串_第2页
第2页 / 共19页
visualstudio学习数组和字符串_第3页
第3页 / 共19页
visualstudio学习数组和字符串_第4页
第4页 / 共19页
visualstudio学习数组和字符串_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《visualstudio学习数组和字符串》由会员分享,可在线阅读,更多相关《visualstudio学习数组和字符串(19页珍藏版)》请在金锄头文库上搜索。

1、第第4 4章章 数组和字符串数组和字符串到目前为止,我们已经了解C+中所有重要的基 本数据类型,以及如何在程序中执行计算和判断。本 章将讨论两个比较复杂的数据类型:数组和字符串。 数组及其使用方法 l 各种类型的数据 l 多维数据的使用 l C+字符串与C语符串 l C+/CLI的数组与字符串4.1 4.1 数组概述数组概述在前面介绍了如何声明和初始化基本类 型的变量。每个变量都可以存储特定类型的 一个数据项在整型变量中可以存放整数 ,在字符变量中可以字符等。而数组可以存 储相同类型的多个数据项,如整型数组可以 存储多个整数。实际上,数组可以存储任何 类型的数据。4.1.1 4.1.1 定义数

2、组定义数组数组是由多个内存空间组成,每个内存空 间都可以存储相同类型的一个数据项,所有的数 据项都通过相同的变量名来引用。在C+中定义 数组一般形式为:类型名 数组名 常量表达式;其中,类型名可以是任一种基本数据类 型。数组名是用户定义的数组标识符。方括号中 的常量表达式表示数据元素的个数,也称为数组 的长度。4.1.2 4.1.2 引用数组元素引用数组元素为了引用数组中各个数据项, 需要使用一个整数标识各个数据项, 该整数通常称为数组的索引。数组的 索引表示数组元素到数组开始位置的 偏移量。第1个数组元素的偏移量是0 ,因此该元素对应的索引值就是0, 第2个数组元素的偏移量是1,它对应 的索

3、引值就是1,依次类推。要引用数组中某元素时,可以 在数组名后面的方括号中放置该元素 对应的索引值。如要将数组a中的第4 个元素设置为12,可以使用下面的语 句:a3=12; 数组的内存排列如右图所示。4.1.3 4.1.3 初始化初始化在定义数组时如果没有为数组指定初始值,则数组的各个存储单元中会 包含一此无用的乱码。在定义数据时可以对其进行初始化,使其包含程序中 马上能使用的值。对数组进行初始化时,应该在大括号中提供各个数组元素 的初始值。初始化数组时,不能指定比数组元素个数还多的初始化值,但可以指定 比数组元素个数少的初始化值。没有提供初始值的数组元素将被初化为0,这 与未提供初始化列表的

4、情况不同。4.2 4.2 多维数据多维数据前面介绍的数组都只需要一个索引值来选择元素 ,这种数组称为一维数组。也可以声明需要两个或更多 索引值才能访问元素的数组,这种数组一般称为多维数 组。需要两个索引值来引用元素的数组称为二维数组, 需要三个索引值的数组称为三维数组,依此类推。4.2.1 4.2.1 多维数组的定义多维数组的定义在程序中,为了存储这类数据,就需要定义二维 数组。二维数组定义的一般形式为: 类型说明符 数组名常量表达式1常量表达式2 例如:int a34;这条语句定义了一个二维数组a,第一个索引值 是行号,第二个索引值是行内的编号。对于C+中的二 维数组,可以看作是由一维数组的

5、嵌套而构成的。设 一维数组的每个元素都又是一个数组,就组成了二维 数组。当然,前提是各元素类型必须相同。根据这样 的分析,一个二维数组也可以分解为多个一维数组。4.2.2 4.2.2 多维数组的初始化多维数组的初始化为了初始化多维数组,需要扩展原来初始化一维数 组的方法。由于二维数组是两个一维数组,这样对二维 数组的实始化就变成对两个一维数组进行实始化。根据 这种方法,用下面的语句可以定义并实始化二维数组: int a34= 80,75,92,69, /第一行 61,65,71,75, /第二行 59,63,70,68 /第三行;因为第一行都是一个一维数组,所以每行的初始化 值都包含在一对大括

6、号中。这3个初始化列表本身也包含 在一对大括号中,因为二维数组是一维数组的一维数 组。可以将这个规则扩展到任意维数的数组,每增加一 维,就需要添加一对大括号包含初始值。4.3 4.3 数组的应用数组的应用l 排序l倒置矩阵4.3.1 4.3.1 排序排序在实际的应用时,经常会需要对数据进 行排序。排序的方法有很多种,常见的包括 :冒泡排序法和选择排序法。1冒泡排序法2选择排序法4.3.2 4.3.2 倒置矩阵倒置矩阵矩阵常用二维数组来表示。倒置矩阵也就是将一 个二维数组的行和列元素互换,存储在另一个二维数 据中。在进行矩阵倒置时,只需要注意各元素的行和列 的索引值变化:原矩阵中的第1个元素的坐

7、标位置没有 发生变化;原矩阵第2个元素的行号和列号为(0,1) ,倒置后变为(1,0);原矩阵第3个元素的行号和列 号为(0,2),倒置后变为(2,0),.。4.4 4.4 字符数组和字符串字符数组和字符串char类型的数组可以用于存储非空( C语言标准)的字符串。在C+中,还定 义了string类型,该类型比C语言标准的 字符串更易于使用。4.4.1 4.4.1 字符数组字符数组char类型的数组有两个含义:它可以 是一个字符数组,每个元素存储一个字 符;它也可以表示一个字符串。在后一 种情况中,字符串中的每个字符存储在 一个数组元素中,字符串的结尾用一个 特定的字符0表示结束。4.4.2

8、STRING4.4.2 STRING字符串字符串事实上,string类型是一个类定义。由 于目前为止还没介绍过类,所以这里可以理 解为类是一种新的数据类型,类数据类型与 基本数据类型并没有区别。在使有基本数据 类型时,需要使用该基本类型的变量。同样 ,在使用类类型时,也必须使用类的变量, 只是类的变量一般称为对象。string类型在 头文件中定义,所以在使用string对 象时总是要包含这个头文件。string类型的 名称也是在std命名空间中定义。4.4.3 4.4.3 使用使用STRINGSTRING字符串字符串1连接字符串2访问字符串中的字符3访问子字符串4比较字符串5搜索字符串 6修改

9、字符串4.4.4 UNICODE4.4.4 UNICODE字符串字符串如果字符串需要包含wchar_t类型的字符,而 不是char类型的字符,则可以使用头文件中 定义的wstring类型。wstring类型的对象与string类型 的对象相同。例如,下面的语句定义了一人Unicode 字符串的对象:std:wstring wphrase;Unicode字符串值需要在双引号前添加一个前缀L ,将宽字符集与单字符集表示的字符串区分开来。 因此,为wstring类型的对象赋值时应采用下面的语 句:wphrase=L“世上无难事,只怕有心人。“;要输出Unicode字符串时,必须使用wcout流, 并

10、且在输出中文时,需要设置系统的使用的字符集 为locale (“chs“)。4.5 C+/CLI4.5 C+/CLI的应用的应用l CLR数组l CLR字符串4.5.1 CLR4.5.1 CLR数组数组1一维CLR数组CLR数组必须使用关键字array指定数组的类型, 还必须在array关键字后面的尖括号中指定数组元素 的类型。2多维CLR数组CLR多维数组的最大维数为32。在声明多维CLR 数组时,需要在尖括号内指定元素的类型后,再指 定数组的维数。数组的维数默认为1,因此在声明一 维数组时不需要指定维数。4.5.2 CLR4.5.2 CLR字符串字符串CLR字符串是由System命名空间中定义的String 类表示。String类存储的字符串中各个字符是由 System:Char类表示。可以使用类似下面的语句创建表示字符串的 String对象:System:String phrase=L“where there is a will there is a way“;这里使用字符串值是基于Unicode字符集,因 为它的前缀是L。如果省略前缀L,则该字符串值将 变为单字节字符集,但是这在CLR字符串中并不重 要,因为在编译CLR程序时编译器会自动完成字符集的转换。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 教学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号