4.2字符数组与字符串(教案)-《C语言程序设计》同步教学(电子工业出版社)

2024-07-10
| 4页
| 84人阅读
| 68人下载
普通

内容正文:

沈阳职业技术学院教案用纸 第 5 周 总第 13 次 学时:2 教学班级: 课程:C语言程序设计 授课教师: 课题:4.4 字符数组与字符串 教学方法:讲授、启发 教具:常规教具 教学目标:使同学们掌握字符数组的定义与初始化以及常用字符串处理函数 教学重点:字符数组的定义以及初始化 教学难点:常用字符串处理函数 主要教学内容: 4.4 字符数组与字符串 4.5.1 字符数组的定义、初始化和引用 4.4.2 字符串的输入和输出函数 4.4.3 字符串函数简介 课后回顾: 沈阳职业技术学院教案用纸 四个一: 提问:数组的定义、赋值以及数据的输入、输出。 导入:上节课我们学习的数组元素的成员都是数值型的,在实际应用中,经常需要处理字符及字符串,如果需要处理的对象是字型的数据,又应该怎样定义和使用呢? 正文: 4.4 字符数组与字符串 4.5.1 字符数组的定义、初始化和引用 字符数组是存放字符型数据的数组,字符数组的一个元素存放一个字符,字符数组包括一维字符数组和二维字符数组等。字符数组的定义方法与定义其他类型数组的方法完全相同,但其类型必须为char型。 C 语言规定用'\0'作为字符串的结束标志,当把一个字符串存入一个数组时,系统自动将结束符'\0'存入数组,以此作为字符串是否结束的标志。 1.字符数组的定义 一维字符数组的定义格式为: ( char 数组名[常量表达式]; ) 二维字符数组的定义格式为: ( char 数组名[常量表达式1] [常量表达式2]; ) 例如: char s[10]; /*定义一个长度为10的一维字符数组s*/ char str[3][5]; /*定义一个3×5的二维字符数组str*/ 2.字符数组的初始化 字符数组的初始化有以下几种方法。 char str[11]={'I',' ','a','m',' ','a',' ','b','o','y'}; /*完全初始化*/ char str[ ]={'I',' ','a','m',' ','a',' ','b','o','y'}; /*省略长度完全初始化*/ char str[10]={'b','o','y'}; /*不完全初始化,后面元素都默认为字符串结束符'\0'*/ char str[ ]={"I am a boy"}; /*字符串形式的初始化*/ char str[ ]="I am a boy"; /*数组省略花括号的字符串形式的初始化*/ char str[2 ][5]={ "boy", "girl"}; /*省略花括号的字符串形式的初始化*/ char str[ ][5]={ "boy", "girl"}; /*省略第一维数,省略花括号的字符串形式的初始化*/ 注意:若初始化列表中初值个数大于数组的长度,则按语法错误处理;若小于数组的长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符,即'\0';若等于数组长度,定义字符数组时其长度可省略,系统会根据初值的个数确定字符数组的长度。 3.字符数组元素的引用 一、二维字符数组中各元素的引用方法与一、二维普通数组引用方法完全相同。例如: char s[10]="boy"; /*定义一维字符数组s并将其初始化*/ char str[3][5]= { "boy", "girl","man"}; /*定义3×5二维字符数组str并将其初始化*/ 则: s[0]= 'B'; /*将一维数组s的第一个字符赋值为字符'B'*/ str[1][0] = 'G'; /*将二维数组str的第1行第1列的字符赋值为字符'G'*/ 都是对字符数组中各元素的引用。 4.4.2 字符串的输入和输出函数 1.标准输入函数scanf 标准输入函数scanf可以输入字符数组中的某一个元素,或是输入一个字符串。scanf函数在输入单个字符时使用“%c”格式控制符,输入字符串时使用“%s”格式控制符。 例如,有一个字符数组: char str[10]; scanf("%c",&str[0]); /*读入字符数组一个元素,方法与字符变量相同,数组元素前有地址符号&*/ scanf("%s",str); /*将一个字符串存入字符数组c中,注意数组名str前无地址符号&*/ 使用scanf函数向数组输入字符串时必须注意输入的字符串中不能包含空格,因为C语言规定用scanf函数输入字符串时,以空格或回车符作为字符串间隔的符号。 例如: char str1[10],str2[10],str3[10]; scanf("%s%s%s",str1,str2,str3); 运行时输入一行字符串: We love china!<回车> 则str1中的字符串是“We”,str2中的字符串是“love”,str3中的字符串是“china!”。由上例可以看出无法利用scanf函数输入一个包含空格的字符串并将其赋值给一个字符数组。 2.字符串输入函数gets gets函数能输入完整的句子,以回车键作为字符串结束符号,将从键盘输入的字符串存放到字符数组中,所以gets函数能输入带空格的字符串。函数的调用格式为: ( gets(字符数组名); ) 例如: char str[30]; gets(str); 运行输入一个字符串: We love china! <回车> 则字符数组str中的字符串是“We love china!”。 提示:当使用字符数组存放字符串时 在接受字符串输入时,存放字符串的字符数组变量要足够大,否则容易引发数组越界操作,导致程序错误。 3.标准输出函数printf printf函数在输出字符串时使用“%s”格式控制符,并且与“%s”对应的输出项必须是要输出字符串的第一个字符的地址。printf函数将依次输出字符串中的每个字符,直到遇到字符结束符'\0'。在字符串中可以有空格字符(这与用scanf函数不能输入带空格的字符串不同)。 例如: char str[]="We love china!"; printf("%s",str); 输出结果是:We love china!输出该字符串后光标不会自动换行。 4.字符串输出函数puts puts函数为字符串输出函数,能将一个字符串输出到终端,输出的字符串包含转义字符。函数的调用格式为: ( puts(字符数组名) ; ) 例如: char str[]="We love China!"; puts(str); 输出结果是:We love China!,使用puts函数输出字符串时,字符串结束标志'\0'转换为换行符' ',即输出字符串后换行。 小结: C语言中没有字符串类型的变量,在处理字符串时通常采用字符数组的方法。本节主要介绍字符数组和字符串,字符数组逐个引用时其使用方法与数值数组相同,而其整体使用是字符数组特有的。 备 注 引入:通过实例引入字符串的使用,引发学生的学习兴趣。 强调:字符串是以‘\0’结束 难点:字符串的输入函数与输出函数的使用。 学科网(北京)股份有限公司 $$

资源预览图

4.2字符数组与字符串(教案)-《C语言程序设计》同步教学(电子工业出版社)
1
4.2字符数组与字符串(教案)-《C语言程序设计》同步教学(电子工业出版社)
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。