文档详情

C语言程序设计教程 李淑华 第09讲 数组 2 新.ppt

发布:2015-12-14约字共18页下载文档
文本预览下载声明
第九讲 数组 6.3 字符数组与字符串 6.4 应用举例 6.3 字符数组与字符串 6.3.1 字符数组 1. 字符数组的定义 一维数组的定义形式: char 数组名[常量表达式]; 例如:char c[10]; 二维数组的定义形式: char 数组名[常量表达式1][常量表达式2]; 例如:char b[3][4]; 用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。 char c[10]可写成int c[10] 2. 字符数组的初始化 如: static char c[10]={‘w’,’ ‘,’r’,’y’,’d’,’g’,’I’,’s’,’c’,’u’}; 说明: (1)如果花括号中提供的数值个数(即字符个数)大于数组长度,则作语法错误处理。 (2)如果初值个数小于数组长度,则只将这些字符赋给数组中的前面那些元素,其余元素自动定为空字符(‘\0’) (3)如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。 3. 字符数组的引用 例6.10 输出一个字符串 main( ) {char c[10]={‘I’,’ ‘,’a’,’m’,’ ‘,’h’,’a’,’p’,’p’,’y’}; int I; for(i=0;i10;i++) printf(“%c”,c[i]); printf(“\n”); } 运行结果: I am happy 6.3.2 字符串 1. 字符串和字符串结束标志 (1)字符串常量。字符常量是用双引号括起来的一串字符,C语言约定用‘\0‘作为字符串的结束标志,它占内存空间,但不计入串的长度。’\0’的代码值为0。 (2)在C语言中,字符串可以存放在字符型一维数组中,故可以用字符型一维数组处理字符串。 2. 用字符串常量给数组赋初值(初始化)。 char c[6]=“chian”; 4. 字符串的输入和输出 (1)逐个字符输入输出函数。 (a)在标准输入和输出函数printf和scanf中,用格式符“%c”输入或输出一个字符。 (b)使用gets和puts函数。 (2)将整个字符串一次输入或输出。用格式符“%s“,输出字符串。例如: static char c[ ]={“china”}; printf(“%s”,c); 5.字符串处理函数 (1)puts(字符串)——字符串输出函数。 功能:将一个字符串输出到终端。输出的字符串包含转义字符。例如: char str[ ]={“china\nbeijing”}; puts(str); 输出: china beijing (2)gets(字符数组)——字符串数组输入函数 功能:从终端输入一个字符串到字符数组,该函数返回值是字符数组的起始地址。例如: gets(str); 注意:用puts和gets函数只能输入或输出一个字符串,I不能写成:puts(str1,str2); 或 gets(str1,str2); (4)strcpy(字符数组,字符串)——字符串拷贝函数 功能:将字符串拷贝到字符数组中去。例如: char str1[10],str2[ ]={“china”}; strcpy (str1,str2); 执行结果:china\0\0\0\0\0 说明: (a)字符数组必须足够大,以便能容纳被拷贝字符串 (b)拷贝时连同字符串后面的‘\0’一起拷贝到字符数组中。 (5)strcmp(字符串1,字符串2)——字符串比较函数。 功能:按ASCⅡ码值大小比较,将两个字符串自左至右逐个字符相比,直到出现不同的字符或到’\0’为止。如果全部字符相同,则认为相等,如果出现不相同的字符,则以第一个不相同的字符的比较结果为准。比较的结果由函数值带回。 (a)字符串1=字符串2,函数值为0; (b)字符串1字符串2,函数值为0; (c)字符串1字符串2,函数值为0; 注意:对两个字符比较,不能用以下形式: If(str1==str2)printf(“yes”); 而只能用:if(strcmp(str1,str2)==0)printf(“yes”); 6.4 应用举例 例6.12 从键盘为一个3х3整型数组输入数据,并找出主对角线上元素的最大值及其所在的行号。 #include “stdio.h” main( ) {int a[3][3],I,j,Max,Row; for(i=0;i3;i++); for(j=0;j3;j++); scanf(“%d”,a[i][j]); Max=a[0][0]; Row=0; for(i=1;i3;i++); if(Maxa[i][i]) {Max=a[i][i]; Row=I;} Printf((“Max=
显示全部
相似文档