文档详情

掌握一维数组、二维数组的定义.ppt

发布:2017-09-22约字共51页下载文档
文本预览下载声明
第七章 数 组(The Array) 掌握一维数组、二维数组的定义、初始化和引用。 掌握字符串和字符数组的概念及其处理函数。 掌握用数组进行编程的技术。 先看一个例子: 7.1 一维数组的定义和引用 (One Dimension Array) 7.2 二维数组的定义和引用 7.3 字符数组和字符串 (Character Array and Strings) 二、字符串与字符数组 字符串常量是用双引号括起来的一串字符,由系统自动加上一个字符串结束标志‘\0’。它占内存,但不记入字符串长度。 如:“china” 占内存6个字节,但字符串长度是5 在C语言中用字符数组来处理字符串,每个数组元素存放一个字符型数据。 字符型数组可用一般数组的初始化方式初始化外,还可以使用字符串常量初始化: 如:char message[]={“Hello”}; √ 或 char message[]=“Hello”; √ (这时,字符数组长度是6,字符串长度是5。) 注意:它与一般初始化方式: char message[]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’}; 初始化的结果是不同的。 用一般初始化方式结果: ‘H’ ‘e’ ‘l’ ‘l’ ‘o’ 用字符串常量初始化 : ‘H’ ‘e’ ‘l’ ‘l’ ‘o’ ‘\0’ 说明:字符数组本身并不要求它的最后一个元素一定是‘\0’,例如:char ch[2]={‘A’, ‘B’};是合法的。当定义字符数组用字符串常量赋初值时,最后有一个元素其值为‘\0’。为了使处理方法一致,在字符数组中也常常人为地加上一个值为‘\0’的元素。 如:char message[]={‘H’, ‘e’, ‘l’, ‘l’, ‘o’, ‘\0’}; 例7.7 输出一个钻石图形 main() { char diamond[][5] ={{‘ ’,’ ’,’*’},{‘ ’,’*’,’ ’,’*’}, {‘*’,’ ’,’ ’,’ ’,’*’}, {‘ ’,’*’,’ ’,’*’},{‘ ’,’ ’,’*’}}; int i,j; for(i=0;i5;i++) { for(j=0;j5;j++) printf(“%c”,diamond[i][j]); printf(“\n”); } } * * * * * * * * 三、字符数组的输入输出 字符数组的输入输出可以有以下两种方法: ⑴逐个字符输入输出 用格式符“%c”输入或输出一个字符。 ⑵将整个字符串一次输入或输出 用格式符“%s”输入输出字符串。 例如:char c[]=“Hello” ; printf(“%s”, c) ; 注意: ⑴输出字符不包括结束符‘\0’。 ⑵用“%s”格式符输出字符串时,printf函数的 输出项是字符数组名,而不是数组元素名。 main() { char a[5]; int i=0; while(i=4) { scanf(“%c”,a[i]); i++;} } } 输入数据: abc cdg main() { char a[5]; int i=0 scanf(“%s”,a); printf(“%s”,a); } a[0] a[1] a[2] a[3] a[4] a b c \0 \0 a[1] a[2] a[3] a[4] a b c c a[0] ⑶输出字符数组时,遇到第一个‘\0 ’,输出就结束。 ⑷用“%s”格式符输入字符串时,scanf函数的输出项 是字符数组名时,不要再加地址符,因为C语言 中数组名代表该数组的起始地址。 如: char str[10]; scanf(“%s”,str); ⑸用“%s”格式符输入字符串时,scanf函数的输入项是 字符数组名时,从键盘输入的字符串应短于已定义 的字符数组的长度。系统自动在后面加 个‘\0’结束符。 ⑹利用scanf函数输入多个字符串时,是以空格、回车、 跳格分隔。因此不要试图利用scanf函数从键盘输入 How are you? 赋给一个字符串。 四、字符串函数 ㈠、字符串输入输出函数 1.字符串输入gets()函数 使用形式
显示全部
相似文档