语言第十三讲.pptx





《语言第十三讲.pptx》由会员分享,可在线阅读,更多相关《语言第十三讲.pptx(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、例1 1:输出字符串#includevoidmain()chars=“hello”,*ps;ps=s;while(*ps!=0)putchar(*ps);ps+;main()charstr80,*p,ch;inti=0;p=str;gets(p);ch=getchar();for(;*p!=0;p+)if(*p!=ch)stri+=*p;stri=0;printf(“Thenewstringis:%sn”,str);例2 2:在输入的字符串中删除指定的字符2000Hp str0 str1 str202000H2001H2002H2003H2004H2005H2006Hch0i运行程序:abcd
2、efc 2000Hstr a b d e f0 a b c d e fcstrprintf(“%s”,ps);或:puts(ps)Thenewstringis:abdef第1页/共18页字符指针(变量)与字符数组的区别字符指针与字符数组:两者均可存储和运算字符串。两者均可存储和运算字符串。主要区别:存储格式不同:字符指针变量中存放的是字符指针变量中存放的是字符串的首地址字符串的首地址(2字节字节);而字符数;而字符数组中存放的是组中存放的是整个字符串整个字符串(一个数组元素存放一个字符)。一个数组元素存放一个字符)。性质不同:字符数组名是地址常量,不能改变字符数组名是地址常量,不能改变(指向首
3、字符指向首字符););字符指针是地字符指针是地址变量,可以改变址变量,可以改变(指向不同的字符指向不同的字符)。赋值方式不同:字符指针 char*ps=“Hello”;char*ps;ps=“Hello”;字符数组charst=“Hello”;charst80;st=“Hello”或:st=“Hello”用循环逐个赋值或用strcpy()函数赋值第2页/共18页例:统计字符串中的各元音字母的个数(P182例6.15)#includevoidmain(void)charstr80,*p;inta=0,e=0,i=0,o=0,u=0;gets(str);for(p=str;*p!=0;p+)swi
4、tch(*p)casea:caseA:a+;break;casee:caseE:e+;break;casei:caseI:i+;break;caseo:caseO:o+;break;caseu:caseU:u+;printf(a:%3dne:%3dni:%3dno:%3dnu:%3dn,a,e,i,o,u);循环遍历数组元素 判断字母。判断字符串是否结束判断字符串是否结束第3页/共18页2.字符串指针做函数参数(见P183表6-2)#includevoidcpystr(char*s1,char*s2)while(*s2!=0)*s1+=*s2+;*s1=0;voidmain(void)char
5、str120,str2=123456abcdef;cpystr(str1,str2);printf(str2:%sn,str2);printf(str1:%sn,str1);去掉该句,对程序结果是否有影响?例:编写函数,用指针进行字符串的复制,第4页/共18页6.2.4指针数组 指针是存放其它数据对象地址的指针是存放其它数据对象地址的变量变量。也可以构成。也可以构成数组数组。每个数组元素均为一个。每个数组元素均为一个指针变量,且在内存中连续存放。指针变量,且在内存中连续存放。1.指针数组定义格式:type*数组名数组名元素个数元素个数;int*p4;定义(说明)定义(说明)p是含有是含有4个元
6、素的指针变量,每个元素都是个元素的指针变量,每个元素都是一个指向整型变量的指针一个指向整型变量的指针(二级指针)(二级指针)。p0p1p2p3数组名数组名p为数组的首地址。为数组的首地址。使用前必须让各元素指向对象。使用前必须让各元素指向对象。inti,a34,*p3;for(i=0;i3;i+)pi=ai;*(pi+j)=2;/*通过指针数组引用数组元素aij*/第5页/共18页2、用指针数组处理多字符串例:用指针数组对字符串进行排序。例:用指针数组对字符串进行排序。#includevoidmain(void)inti,j;char*ps=Get,Put,Time,Date,*p;print
7、f(排序前字符串:n);for(i=0;i4;i+)puts(psi);for(i=0;i3;i+)for(j=i+1;j0)p=psi;psi=psj;psj=p;printf(排序后字符串:n);for(i=0;i4;i+)puts(psi);循循环环实实现现排排序序Get0Put0Time0Date0ps0ps1ps2ps3ps第6页/共18页2 2、指针数组访问二维数组通过指针数组输出数组元素的值通过指针数组输出数组元素的值,分析运行结果。分析运行结果。#includevoidmain()inti,j;inta33=1,2,3,4,5,6,7,8,9;int*pa3=a0,a1,a2;
8、int*p=a0;for(i=0;i3;i+)for(j=0;j3;j+)printf(%5d,paij);printf(n);for(i=0;i3;i+)printf(%d,%d,%dn,ai2-i,*ai,*(*(a+i)+i);for(i=0;i=y?x:y);2400H函数指针变量的定义:type(*p)();函数的类型。函数的类型。指针变量名指针变量名函数函数使用步骤:定义函数定义函数fname和指向函数的指针和指向函数的指针p;指针指向函数;指针指向函数;p=fname;通过指针引用函数。通过指针引用函数。格式:格式:(*p)(实参表实参表);main()第8页/共18页举例:求举
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 第十 三讲

限制150内