5.4字符数组(字符串处理函数)(教案)-《C语言程序设计》同步教学(电子工业版)

2024-11-18
| 5页
| 143人阅读
| 0人下载
普通

内容正文:

课程单元教案 本课编号 15 本课课时 2学时 内容提要 项目5 数组应用 任务4 字符数组(字符串处理函数) 教学目的 1、掌握字符串处理函数的含义和使用方法; 2、熟练使用字符串处理函数解决问题。 知识能力 结构 掌握字符串处理函数的用法。 教学重点 难点 重点:字符串处理函数puts()、gets()、strlen()的用法; 难点:字符串处理函数strcat()、strcpy()、strcmp()的用法。 教学手段 方法 教学方法:项目任务驱动教学法、提问式、启发式 教学手段:课堂讲授法、操作演示法、多媒体教学 思考题与 习题 1、什么是字符串处理函数。 2、登录验证:输入用户名和密码,如果和原用户名和密码相同则显示“登录成功!”,否则显示“用户名或密码错误!”。 教学内容进程设计 项目导入:综合实践5学生多门成绩存储与处理设计 项目描述:利用数组来存储和处理学生的多门课成绩。 问题导入:对字符数组或字符串有哪些常用的操作呢? 根据课前预习及搜集的资料,对字符数组的概念有一个初步的了解,以方便进行下面知识内容的学习。 任务4 字符数组 4.3 字符串处理函数 1.strcat(字符数组1,字符数组2) 功能:把字符数组2中的字符串连接到字符数组1中的字符串后面,并删去字符串1后的串标志‘\0’。本函数返回值是字符数组1的首地址。 例1:连接字符串。 main() {char a[20],b[20]; printf("输入第一个字符串:"); gets(a); printf("输入第二个字符串:"); gets(b); strcat(a,b); printf("字符串分别为: "); puts(a); puts(b);} 注意:字符数组1应定义足够的长度。 2. strcpy(字符数组1,字符数组2) 功能:把字符数组2中的字符串拷贝到字符数组1中,串结束标志’\0’也一同拷贝。其中,字符数组2也可以是一个字符串常量。 例2:复制字符串。 main() {char a[20],b[20]; printf("输入第一个字符串:"); gets(a); printf("输入第二个字符串:"); gets(b); strcpy(a,b); printf("字符串分别为: "); puts(a); puts(b);} 注意:字符数组1应定义足够的长度。 3. strcmp(字符数组1,字符数组2) 功能:按照ASCII码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。 字符串1=字符串2,返回值=0 字符串2>字符串2,返回值>0 字符串1<字符串2,返回值<0 本函数也可用于比较两个字符串常量,或比较数组和字符串常量。 例3:比较字符串。 main() {char a[10],b[10]=“abcd1234"; int i; printf("请输入一个字符串:"); gets(a); i=strcmp(a,b); if(i==0) printf("两个字符串相等 "); else printf("两个字符串不相等 ");} 4. strlen(字符数组) 功能:测字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。 例4:求字符串长度。 main() {char a[20]; int i; printf("请输入一个字符串:"); gets(a); i=strlen(a); printf(“字符数组a长度为:%d ",i);} 运行结果: 请输入一个字符串: program ↙ 字符数组a长度为:7 4.4字符数组应该 例:编写程序,将两个字符串连接起来。(不使用strcat函数) 算法分析: 1. 定位:第一个字符串的‘\0’的位置; 2. 从‘\0’开始把第二个字符串的字符依次放入第一个字符串的后端,直至第二个字符串的‘\0’; 3. 检验第一个字符串的末端是否有结束符‘\0’,若没有,修正所得的字符串,在它的末端加上‘\0’。 #include "stdio.h" main( ){ char s1[80],s2[80]; int i=0,j=0; printf("请分别输入两个字符串:"); gets(s1); gets(s2); while(s1[i]!='\0') i++; //定位s1的‘\0’ while(s2[j]!='\0') { s1[i]=s2[j]; i++; j++; //把s2中的字符依次复制到s1的末端 } s1[i]='\0'; //修正s1结束符号 printf("连接后的字符串为:"); puts(s1); } 例:判断一个字符串是否是回文,如:abcdedcba,是就输出“Yes”,不是就输出“No”。 参考代码: #include "stdio.h" #include "string.h" main( ) {char str[50]; int len,i; gets(str); len=strlen(str); for(i=0;i<=len/2;i++) {if(str[i]!=str[len-i-1]) {printf("不是回文!"); break;} } if(i>len/2) printf("是回文!");} 随堂实训练习: 1、编写程序,把输入的一个字符串复制到一个字符数组中并输出(不用strcpy())。 2、登录验证:输入用户名和密码,如果和原用户名和密码相同则显示“登录成功!”,否则显示“用户名或密码错误!”。 教学小结 (1)掌握几个常用字符串处理函数如何使用; (2)能将字符数组及字符串函数用于实际问题,并完成相关题目。 学科网(北京)股份有限公司 $$

资源预览图

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