第3单元基本数据类型 大写字母的 ASCII码值-A+a=对应的小写字母的ASCI码值 程序 ∥/ Example3-2:将大写字母转换为小写字母 int my lower (int cl if(ch>='A’&&ch<=Z') return ch 分析:字符数据以整型或字符型格式存放实际存放的是字符的ASCⅡ码。从而可 以使用数值数据的运算方法来处理字符数据。在函数 mylower()中,如果一个字符不是大 写字母,则不进行转换 字符串常数即用双引号括起来的一串字符,例如 Visual C++""12 34"."This is a string. \n 字符串常数在内存占用的实际存储字节数要比字符串中的字符个数多1个,即在字符串 的尾部还要添加一个数值为0的字符,用以表示字符串的结束。该字符也可以使用转义序列 0表示。以字符串" MONDAY"为例,其实际存储形式见图3-2。 因此,B与"B"是有区别的,前者是 个字符型常量,而后者是字符串常量,MNDA'Y|10 由两个字符B和0组成。 图3-2字符串的存储方式 32数组 变量和常数只能用来表示少量互相之间没有内在联系的数据,大量的成批数据要使用 数组来存放。所谓数组是一组相同类型的变量,用一个数组名标识其中每个变量(称为数组 元素)通过该变量在数组中的相对位置(称为下标)来引用。数组可以是一维的,也可以是二维 或者更高维的。图3-3分别给出了一维、二维和三维数组中的数组元素排列方法 数组的声明方法与变量相同,只是要在数组名后面加上用方括号括起来的各维维长。例 int array1[10] //声明了一个有10个元素的整型数组 float matrix[20][20];∥/声明了一个20行20列的浮点型矩阵 数组元素的下标从0开始编号。例如,aray1[0是数组 array l中的第一个数组元素 atrix[oI[o]是矩阵matrⅸx中的第1行第1列元素,位于矩阵的左上角 同一个数组的所有数组元素在存储器中占用一片连续的存储单元。 对于数组来说,最常用的处理方法是在通过循环处理数组中的元素。例如 //将数组中的所有元素置零 for (int i=0: i<N
第 3 单元 基本数据类型 - 49 - 大写字母的 ASCII 码值−'A'+'a' = 对应的小写字母的 ASCII 码值 程 序: // Example 3-2:将大写字母转换为小写字母 int mylower(int ch) { if(ch>='A' && ch<='Z') ch = ch−'A'+'a'; return ch; } 分 析: 字符数据以整型或字符型格式存放, 实际存放的是字符的 ASCII 码。从而可 以使用数值数据的运算方法来处理字符数据。在函数 mylower()中, 如果一个字符不是大 写字母, 则不进行转换。 字符串常数即用双引号括起来的一串字符, 例如: "Visual C++", "12.34", "This is a string.\n", ... 字符串常数在内存占用的实际存储字节数要比字符串中的字符个数多1个, 即在字符串 的尾部还要添加一个数值为 0 的字符, 用以表示字符串的结束。该字符也可以使用转义序列 '\0'表示。以字符串"MONDAY"为例, 其实际存储形式见图 3-2。 因此, 'B'与"B"是有区别的, 前者是 一个字符型常量, 而后者是字符串常量, 由两个字符'B'和'\0'组成。 3.2 数组 变量和常数只能用来表示少量互相之间没有内在联系的数据, 大量的成批数据要使用 数组来存放。所谓数组是一组相同类型的变量, 用一个数组名标识, 其中每个变量(称为数组 元素)通过该变量在数组中的相对位置(称为下标)来引用。数组可以是一维的,也可以是二维 或者更高维的。图 3-3 分别给出了一维、二维和三维数组中的数组元素排列方法。 数组的声明方法与变量相同, 只是要在数组名后面加上用方括号括起来的各维维长。例 如: int array1[10]; // 声明了一个有 10 个元素的整型数组 float matrix[20][20]; // 声明了一个 20 行 20 列的浮点型矩阵 数组元素的下标从 0 开始编号。例如, array1[0]是数组 array1 中的第一个数组元素; matrix[0][0]是矩阵 matrix 中的第 1 行第 1 列元素, 位于矩阵的左上角。 同一个数组的所有数组元素在存储器中占用一片连续的存储单元。 对于数组来说, 最常用的处理方法是在通过循环处理数组中的元素。例如 // 将数组中的所有元素置零 for(int i = 0; i < N; i = i+1) 'M' 'O' 'N' 'D' 'A' 'Y' '\0' 图3-2 字符串的存储方式
第3单元基本数据类型 //将矩阵 matrix置成单位矩阵 for(int i=0: i<20:i =i+1) i for(int j=0 matrix[i][j]=0.0 matrix[il[i]=1.0 000102 000001 021022 (a)一维数组 (b)二维数组 (c)三维数组 图3-3数组元素的排列方式 例3-3找出一个数组中最大的元素 算法:找数组中的最大元素这类问题可以利用扫描法解决。即以数组的第一个元素 为基准,向后比较,如果遇到有比基准元素更大的元素则将基准元素替换为该元素,直到数 组中所有的元素均被扫描。这时得到的最新的基准元素就是数组中最大的元素。 程序 / Example3-3:求数组中的最大元素 int max element(int array[, int count) int big array [0] for (int i=0;i<count: i=i+1) if(array [i]>big big array[il return big 33字符型数组和字符串处理库函数 C+使用字符型数组存放字符串数据。由前述字符串常数的存储格式可知,字符串包括 一个结束符0,所以在计算用于存放字符串的数组的大小时要考虑到这一点。例如,如果要
第 3 单元 基本数据类型 - 50 - array1[i] = 0; // 将矩阵 matrix 置成单位矩阵 for(int i = 0; i < 20; i = i+1) { for(int j = 0; j < 20; j = j+1) matrix[i][j] = 0.0; matrix[i][i] = 1.0; } [例 3-3] 找出一个数组中最大的元素。 算 法: 找数组中的最大元素这类问题可以利用扫描法解决。即以数组的第一个元素 为基准, 向后比较, 如果遇到有比基准元素更大的元素则将基准元素替换为该元素, 直到数 组中所有的元素均被扫描。这时得到的最新的基准元素就是数组中最大的元素。 程 序: // Example 3-3:求数组中的最大元素 int max_element(int array[],int count) { int big = array[0]; for(int i=0;i<count;i=i+1) if(array[i]>big) big = array[i]; return big; } 3.3 字符型数组和字符串处理库函数 C++使用字符型数组存放字符串数据。由前述字符串常数的存储格式可知, 字符串包括 一个结束符'\0', 所以在计算用于存放字符串的数组的大小时要考虑到这一点。例如, 如果要 a0 a1 a2 b00 b01 b02 b10 b11 b12 b20 b21 b22 c000 c001 c002 c010 c011 c012 c020 c021 c022 c 100 c 101 c 102 (a)一维数组 (b)二维数组 (c)三维数组 图3-3 数组元素的排列方式