第5章-数组.ppt
文本预览下载声明
第5章 数组 一. 数组的概念 二. 一维数组 一维数组的初始化 一维数组举例 例5.1 插入排序的程序实现 一维数组举例(续) 例5.2 冒泡法排序的程序实现 冒泡法排序算法的改进 三. 二维数组 二维数组在内存中的存放格式 二维数组的引用 二维数组赋初值 二维数组举例 例5.3 (续) 二维数组举例(续) 例5.4 --- 程序实现 例5.4 程序 (续) 第5章 练习-1 5.2 题说明 数组名用作函数参数 例5.5 --- 程序实现 数组参数是如何传递的 (例5.5) 数组名用作函数参数(续) 多维数组名作为函数参数 二维数组用一维方式传递参数 计算方法应用举例 Gauss消去法程序(续) 四. 字符数组 字符数组赋初值 二维(多维)字符数组赋初值 字符数组(字符串)的输入、输出 字符串处理标准函数 字符串处理标准函数(续-1) 字符串处理标准函数(续-2) 字符串处理标准函数(续-3) 字符数组应用举例 例5.10 程序实现 五. 字符串类与字符串变量 字符串变量的赋值 字符串变量的运算 字符串数组 字符串数组举例 例5.11 程序(续) 第5章 练习-2 5.6 题: 杨辉三角形要求按如下分块打印. char s[10]; for (int i= 0; i10; i++) cin s[i]; for (i= 0; i10; i++) cout s[i] endl; 用cin和cout 输入/输出单个元素 用cin和cout 输入/输出整个字符串 char s[10]; cin s; cout s endl; 若输入: Book 则数组s[ ]中的内容为: 输入字符串时, 末尾自动添加\0; 第5章 数组 s[10]: B o o k \0 注: 输出字符串时, 以\0作为结束标志; 如, abc\0def, 则 cout 输出: abc 输入的字符串中间不能有空格或Tab符, 遇空白符自动结束; 1) 字符串I/O --- (下面两函数在stdio.h或iostream中声明) 输出: puts (char *str); --- 将str地址开始的字符串输出到屏幕, 以\0作为输出结束的标志, 并将\0 自动转换成\n. 例如: char s[128]; gets (s); puts (s); 注意: 输入时, 输入的字符个数不能超过数组的长度减1, 否则会引起运行错误 ! 第5章 数组 C/C++提供了一些常用的字符串处理函数, 只要#include相应的头文件就能直接使用. 输入: gets (char *str); --- 从键盘上输入一行字符,存放到str开始的地址, 字串中间允许有空格, 最后的\n 被自动转换成\0; 以下函数2)-6) 在sting.h或cstring中声明 int strlen (char s[ ]); --- 返回字符串s 的实际长度, 不包含\0; 2) 求字符串长度 例, char a[30]=Today; strlen(a) --- 返回5; strlen(To\0day) ? 若输入: String Function 则输出: String Function 3) 字符串比较 int strcmp (char s1[ ], char s2[ ]); ---- 依次对s1和s2的每个字符比较ASCII码大小, 直到分出大小或到达字符串末尾. 返回值: 0, 若s1s2; =0, 若s1==s2; 0, 若s1s2; 4) 字符串复制 a) strcpy (char target[ ], char source[ ]); 注意: ① target数组必须有足够的空间来存放source字串; ②字符串不能直接赋值, 如, char s[20]; s=Book; 是错误的, 应该用, char s[20]=Book; 或, strcpy (s,Book); 如: strcmp (MS-vc, MS-VC); 结果 0; strcmp (Compaq, CompaqFor); 结果 0; 第5章 数组 b) strncpy (char s1[ ], char s2[ ], int n); 功能: 将字符串s2中的前n个字符复制到s1地址; 如果n大于s2的长度, 该函数相当于strcpy(s1,s2); 说明: 如果n不大于s2的长度, 则s1字符串后面不会自动添加\0; 5) 字符串连接 strcat (char s1[ ], char s2[ ]); — 将字串s2连接到字符串s1的后面. 连
显示全部