文档详情

第十七讲 数组(三).ppt

发布:2017-05-13约4.2千字共17页下载文档
文本预览下载声明
第十七讲 数组(三) 1、字符数组的定义、初始化及引用 2、字符串的概念 3、字符串处理函数 * 7.3 字符数组和字符串 一、字符数组 当数组的元素类型为字符型时,被称为字符数组。 如:char c[10]; 则c为字符数组。 字符数组的定义、初始化和元素的引用与一般的数组相同。 如:main() { char ch[5]={‘c’, ‘h’ , ‘i’ , ‘n’ , ‘a’}; for(i=0; i5; i++) printf(“%c”,ch[i]); } * 说明: ⑴定义字符数组的类型说明符一般为char, 如: char c[10]; 由于字符型与整型的互相通用性, 因此,上面定义也可改为:int c[10]; ⑵初始化的字符个数允许少于字符数组的长度,但不能多于字符数组的长度。当初始化的字符(至少要有一个)少于字符数组的长度时,未初始化部分将被编译系统自动用空字符‘\0’ 赋值。 如:int c[8]={‘H’,‘e’,‘l’,‘l’,‘o’}; 则:c[0]=‘H’, c[1]= ‘e’, c[2]= ‘l’, c[3]= ‘l’, c[4]= ,‘o’ c[5]=‘\0’, c[6]=‘\0’, c[7]=‘\0’ * 二、字符串与字符数组 字符串常量是用双引号括起来的一串字符,由系统自动加上一个字符串结束标志‘\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”); } } * * * * * * * * * 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 * 三、字符数组的输入输出 字符数组的输入输出可以有以下两种方法: ⑴逐个字符输入输出 用格式符“%c”输入或输出一个字符。 ⑵将整个字符串一次输入或输出。 用格式符“%s”输入输出字符串。 例如:char c[]=“Hello” ; printf(“%s”,
显示全部
相似文档