C语言教案-第十五周

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言程序设计--1第8章指针本节题目指针与字符串1:本节主要目的1.1教学目的:1、了解字符串的表示形式2、了解字符串指针作函数参数1.2教学内容:1、字符串的表示形式2、字符串指针作函数参数1.3教学重点:1、了解字符串指针作函数参数1.4教学方法:讲授+演示1.5学习方法:听课+笔记+练习2:引入本课内容:[5分钟]在上一节课,学习了指针与一维数组的各种情况,那么,指针能否指向一个字符串呢?如果可以,是一种什么样的情况呢?今天这节课来学习指针与字符串。3:课程知识点讲解:具体知识点1:字符串的表现形式[15分钟]C语言中,有两种方式可以实现字符串:字符数组、字符指针案例讲解1:用字符数组存放一个字符串,然后输出该字符串。main(){staticcharstring[]=“IloveChina!”;printf(“%s\n”,string);}程序说明:string是数组名,代表字符数组的首地址。数组可以用下标访问,也可以用指针访问。如string[4]表示一个元素值是字符v,也可以用*(string+4)来访问,string+4是指向字符v的指针。案例讲解2:用字符串指针指向一个字符串,然后输出该字符串。main(){char*string=“IloveChina!”;printf(“%s\n”,string);}程序说明:string是一个指针变量,“IloveChina!”是一个字符串常量。语句char*string=“IloveChina!”;等价于char*string;string=“IloveChina!”它把字符串常量的首地址赋给指针string。不能理解为把字符串常量赋给指针变量。C语言程序设计--2char*string=“IloveChina!”;string字符串从以上两个例子中,可以看到:1、字符数组和字符指针的概念不同。2、字符指针指向字符串,而C语言中,字符串按数组方式处理,因此,字符数组和字符指针的访问方式相同。例如,均可以使用%s格式控制符进行整体输入输出。但应注意,如果不是字符数组,而是整型、实型等数字型数组,不能用%s,只能逐个元素处理。案例讲解3:将字符串a复制到字符串b。(以下用两种方法实现)方法一:main(){chara[]=“Iamaboy.”;charb[20];inti;for(i=0;*(a+i)!=’\0’);i++)*(b+i)=*(a+i);*(b+i)=’\0’;printf(“stringais:%s\n”,a);printf(“stringbis:”);for(i=0;b[i]!=’\0’;i++)printf(“%c”,b[i]);printf(“\n”);}方法二:main(){chara[]=“Iamaboy.”,b[20],*p1,*p2;inti;p1=a;p2=b;for(;*p1!=’\0’;p1++,p2++)*p2=*p1;*p2=’\0’;printf(“stringais:%s\n”,a);printf(“stringbis:”);for(i=0;b[i]!=’\0’;i++)printf(“%c”,b[i]);printf(“\n”);}在此案例中,程序完成了两项工作:一是把p1指向的源字符串复制到p2所IloveChina!C语言程序设计--3指向的目标字符串中,二是判断所复制的字符是否为’\0’,若是则表明源字符串结束,不再循环。否则,p2和p1都加1,指向下一字符。具体知识点2:字符串指针作函数参数[30分钟]将一个字符串从一个函数传递到另一个函数,可以使用传地址的方式,即用字符数组名或字符指针变量作参数。有以下四种情况:案例讲解:用函数调用实现字符串的复制。(1)用字符数组作参数voidcopy_string(charfrom[],charto[]){inti=0;while(from[i]!='\0'){to[i]=from[i];i++;}to[i]='\0';}main(){chara[]=Iamateacher.;charb[]=youareastudent.;printf(string_a=%s\nstring_b=%s\n,a,b);copy_string(a,b);printf(string_a=%s\nstring_b=%s\n,a,b);}使用字符指针可以将main()函数改写为:main(){char*a=Iamateacher.;char*b=youareastudent.;printf(string_a=%s\nstring_b=%s\n,a,b);copy_string(a,b);printf(string_a=%s\nstring_b=%s\n,a,b);}(2)形参用字符指针。voidcopy_string(char*from,char*to){for(;*form!='\0';from++,to++)*to=*from;*to='\0';}main(){char*a=Iamateacher.;实参形参1数组名数组名2数组名字符指针变量3字符指针变量字符指针变量4字符指针变量数组名C语言程序设计--4char*b=youareastudent.;printf(string_a=%s\nstring_b=%s\n,a,b);copy_string(a,b);printf(string_a=%s\nstring_b=%s\n,a,b);}老师提问:问题1:分别观察两个案例的实参和形参,能总结出什么?4本节总结[10分钟]将一个字符串从一个函数传递到另一个函数,可以使用传地址的方式,即用字符数组名或字符指针变量作参数,有以下四种情况:组合情况实参形参1数组名数组名2数组名字符指针变量3字符指针变量字符指针变量4字符指针变量数组名学生问题汇总:问题1:部分学生字符串章节没有学好,在本节学习较吃力。问题2:字符串从一个函数传递到另一个函数的四种方式在实际变成应用中不够熟练。作业:输人三行字符,每行60个字符,要求统计出其中共有多个大写字母、小写字母、空格、标点符号。

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功