匚课题第七章字符数组 教案号11 教学1、掌握字符数组的定义、初始化、引用,及输入与输出 目的|2、掌握字符串处理函数 教材教学重点字符数组的输入与输出 分析「教学难点字符串处理函数 「课时安排 2教学方法讲授与演示法相结合教具计算机、投影仪 复习引导 从一般的一维数组、二维数组到特殊的字符数组 二讲授新课 字符数组的定义 char数组名[exp] 如: char c[l0] 、字符数组的初始化 1.给每一个字符型数组元素依次赋给一个单字符。如: char strl6}={C,"h;"i,n,"a’,"V0”}; 2.直接在赋值号右边给出字符串常量。如: char str6=hina” 注意:a)字符数组的长度可以通过赋初值的方式隐含定义:如: str[]={C’,h',i,n,a,V0”}; str[=China b)如果括号中提供的初值个数(即字符个数)大于数组长度,则作语法错误处理。 如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的 元素自动定义为空字符(即“10’)。 、字符串和字符串结束标志 字符串结束标志是"0”,如 char ch[= China”,“ China”在存储器中实际占用6个字节: 四、字符数组的输入和输出 1、字符数组的输出 (1)用格式符“%c”控制的 printf(,逐个字符输出 (2)用格式符“%s控制的 printf();字符数组值整体输出 (3)puts(字符数组名):字符数组值整体输出 注意 (1)puts用字符数组名,而不用数组元素名 (2)输出的字符串中可含转义字符:如: static char str[="ChinalnBeijing", puts(str); (3)如果数组长度大于字符串实际长度,也只输出到遇“0’时结束(即若一个字符数组中 包含一个以上的“\0’,则遇到第一个时输出就结束)。如: printf(%osln”,“ ABCD\OEFGH); 只输出ABCD 、字符数组的输入 (1)用格式符“%s”控制的 Scant() tu: static char strl[5], str 2[5], str3[5] scanf(%s%s%s”,strl,str2,str3);/*不能写成&str1* 若输入数据流为: How are you?srl、st2、st3分别接收到How"、"are、you?”, 且在各个字符串的最后自动加“10 如果利用一个 scanf函数输入多个字符串时,则以空格分隔 (2)用gets();如; char ch[l6];gets(ch)
课 题 第七章 字符数组 教案号 11 教 学 目 的 1、掌握字符数组的定义、初始化、引用,及输入与输出 2、掌握字符串处理函数 教 材 分 析 教学重点 字符数组的输入与输出 教学难点 字符串处理函数 课时安排 2 教学方法 讲授与演示法相结合 教具 计算机、投影仪 一 复习引导 从一般的一维数组、二维数组到特殊的字符数组 二 讲授新课 一、字符数组的定义 char 数组名[exp]; 如:char c[10]; 二、字符数组的初始化 1. 给每一个字符型数组元素依次赋给一个单字符。如:char str[6]={‘C’, ‘h’, ‘i’, ‘n’, ‘a’, ‘\0’}; 2. 直接在赋值号右边给出字符串常量。如: char str[6]=“China”; 注意:a) 字符数组的长度可以通过赋初值的方式隐含定义;如: char str[ ]={‘C’, ‘h’, ‘i’, ‘n’, ‘a’, ‘\0’}; char str[ ]=“China”; b) 如果括号中提供的初值个数(即字符个数)大于数组长度,则作语法错误处理。 如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的 元素自动定义为空字符(即‘\0’)。 三、字符串和字符串结束标志 字符串结束标志是“\0”,如: char ch[]=”China”; “China”在存储器中实际占用6个字节: 四、字符数组的输入和输出 1、字符数组的输出 (1)用格式符“%c”控制的 printf(),逐个字符输出 (2)用格式符“%s”控制的 printf();字符数组值整体输出 (3)puts (字符数组名);字符数组值整体输出 注意: (1)puts用字符数组名,而不用数组元素名; (2)输出的字符串中可含转义字符;如: static char str[]=“China\nBeijing”; puts(str); (3)如果数组长度大于字符串实际长度,也只输出到遇‘\0’时结束(即若一个字符数组中 包含一个以上的‘\0’,则遇到第一个时输出就结束)。如:printf(“%s\n”,“ABCD\0EFGH”); 只输出 ABCD 2、字符数组的输入 (1)用格式符“%s”控制的scanf(); 如: static char str1[5],str2[5],str3[5]; scanf(“%s%s%s”, str1,str2,str3); /*不能写成&str1*/ 若输入数据流为:How are you? str1、str2、str3分别接收到“How”、“are”、“you?”, 且在各个字符串的最后自动加‘\0’。 如果利用一个 scanf 函数输入多个字符串时,则以空格分隔; (2)用gets( );如:char ch[16]; gets(ch);
注意 ①gets次只能输入一个字符串; ②自变量应是数组名,而不能是数组元素名 ③要求从键盘上输入一个字符串直到遇到换行符为止,系统会自动把换行符换成“0” 加在字符串末尾。 与 scanf不同,输入字符串中的空格也会被接收 五、字符串处理函数 1、puts(字符数组) 功能:将一个以“\0结束的字符序列输出到终端 static char str[=China: puts(str) 说明:输出的字符串中可含转义字符 2、gets(字符数组) 功能:从终端输入一个字符串到字符数组中,并得到一个函数值,该函数值是字符数组的 起始地址;如:gets(str) 说明:gets与puts只能输入或输出一个字符串 3、 strcat(字符数组1,字符数组2) 功能:将字符串2接到字符串1的后而且去掉字符串1的尾空 如: static char str1[30= Yang Zhou”,str2[]= China”; printf("%s\", strcat(strl, str2)) 说明:①字符数组1的长度需足够大;②去掉字符串1的尾空 4、 strcpy(字符数组1,字符串2) 功能:将字符串2拷贝到字符数组1中去 如: static char strI[1o],str2[=℃hina strcpy(strl, str 2); 5、 strcmp(字符串1,字符串2) 功能:比较字符串1和字符串2,返回:①串1=串2,返回0 ②串1>串2,返回正整数;③串1<串2,返回负整数。 6、 strlen(字符数组) 功能:测试字符串的长度 printf("%d\n" strlen(str)) 说明:不包含“0°在内。特殊字符%%、1、\、hn代表一个字符 7、 strlwr(字符串) 功能:将字符串中的大写字母转换成小写字母; 8、 struer(字符数组) 功能:将字符串中的小写字母转换成大写字母 三、课堂小结 1、字符串的结束标记 字符串的输入与输出,gets、 3、字符串处理函数 四、布置作业 作业:(P141)7.10
注意: ①gets一次只能输入一个字符串; ②自变量应是数组名,而不能是数组元素名; ③要求从键盘上输入一个字符串直到遇到换行符为止,系统会自动把换行符换成“\0” 加在字符串末尾。 与 scanf 不同,输入字符串中的空格也会被接收。 五、字符串处理函数 1、puts(字符数组) 功能:将一个以‘\0’结束的字符序列输出到终端; 如: static char str[ ]=“China”;puts(str); 说明:输出的字符串中可含转义字符。 2、gets(字符数组) 功能:从终端输入一个字符串到字符数组中,并得到一个函数值,该函数值是字符数组的 起始地址; 如: gets(str); 说明:gets 与 puts 只能输入或输出一个字符串。 3、strcat(字符数组 1,字符数组 2) 功能:将字符串2接到字符串1的后而且去掉字符串1的尾空; 如: static char str1[30]=“YangZhou ”, str2[ ]=“China”; printf(“%s\n”,strcat(str1,str2)); 说明: ①字符数组 1 的长度需足够大; ②去掉字符串 1 的尾空。 4、strcpy(字符数组1, 字符串2) 功能:将字符串2拷贝到字符数组1中去; 如: static char str1[10],str2[ ]=“China”; strcpy (str1,str2); 5、strcmp(字符串1,字符串2) 功能:比较字符串1和字符串2,返回:①串1= 串2,返回0; ②串1>串2,返回正整数;③串1<串2,返回负整数。 6、strlen(字符数组) 功能:测试字符串的长度; 如: static char str1[10]=“China”; printf(“%d\n”,strlen(str)); 说明:不包含‘\0’在内。特殊字符%%、\’、\\、\n代表一个字符。 7、strlwr(字符串) 功能:将字符串中的大写字母转换成小写字母; 8、strupr(字符数组) 功能:将字符串中的小写字母转换成大写字母。 三、课堂小结 1、 字符串的结束标记 2、 字符串的输入与输出,gets、puts 3、 字符串处理函数 四、 布置作业 作业:(P141)7.10