C语言第13讲指针与字符串(字符数组).ppt
《C语言第13讲指针与字符串(字符数组).ppt》由会员分享,可在线阅读,更多相关《C语言第13讲指针与字符串(字符数组).ppt(18页珍藏版)》请在三一办公上搜索。
1、6.2.3 指针与字符串(字符数组),C语言用字符数组存放字符串。字符数组:元素个数确定,一般用下标控制循环。字符串:有效字符个数由0确定,用结束符0控制循环。,字符数组名和字符串的值都是地址(字符串的首地址),1、字符串的访问方法:直接引用字符串:,char*chp,ch=”abcde”;/*定义字符指针和字符数组*/chp=ch;/*指针指向字符数组*/putchar(*(chp+2);/*通过指针引用数组元素*/printf(“%s,%s”,ch+1,chp+2);,引用字符数组:,char*chp;/*说明字符指针*/chp=“Hello!”;/*指针指向字符串*/puts(chp);
2、/*通过指针引用字符串*/,字符指针可直接指向字符串:char*chp=“Hello!”;,输出?,无名一维字符数组 0,例1:输出字符串,#include void main()char s=“computer”,*ps=s;while(*ps!=0)putchar(*ps);ps+;,main()char str80,*p,ch;int i=0;p=str;gets(p);ch=getchar();for(;*p!=0;p+)if(*p!=ch)stri+=*p;stri=0;printf(“The new string is:%sn”,str);,例2:在输入的字符串中删除指定的字符,2
3、000H,p,0,ch,0,i,运行程序:abcdef c,2000H,str,c,str,printf(“%s”,ps);或:puts(ps),The new string is:abdef,字符指针(变量)与字符数组的区别,字符指针与字符数组:两者均可存储和运算字符串。主要区别:存储格式不同:字符指针变量中存放的是字符串的首地址(2字节);而字符数组中存放的是整个字符串(一个数组元素存放一个字符)。性质不同:字符数组名是地址常量,不能改变(指向首字符);字符指针是地址变量,可以改变(指向不同的字符)。赋值方式不同:,字符指针,char*ps=“Hello”;,char*ps;ps=“Hel
4、lo”;,字符数组,char st=“Hello”;,char st80;st=“Hello”或:st=“Hello”,用循环逐个赋值或用strcpy()函数赋值,例:统计字符串中的各元音字母的个数(P182 例6.15),#includevoid main(void)char str80,*p;int a=0,e=0,i=0,o=0,u=0;gets(str);for(p=str;*p!=0;p+)switch(*p)case a:case A:a+;break;case e:case E:e+;break;case i:case I:i+;break;case o:case O:o+;br
5、eak;case u:case U:u+;printf(a:%3dne:%3dni:%3dno:%3dnu:%3dn,a,e,i,o,u);,循环遍历数组元素,判断字母。,判断字符串是否结束,2.字符串指针做函数参数(见P183 表6-2),#includevoid cpystr(char*s1,char*s2)while(*s2!=0)*s1+=*s2+;*s1=0;void main(void)char str120,str2=123456abcdef;printf(str2:%sn,str2);printf(str1:%sn,str1);cpystr(str1,str2);printf(
6、str2:%sn,str2);printf(str1:%sn,str1);,去掉该句,对程序结果是否有影响?,例:编写函数,用指针进行字符串的复制,6.2.4 指针数组,指针是存放其它数据对象地址的变量。也可以构成数组。每个数组元素均为一个指针变量,且在内存中连续存放。,1.指针数组定义,格式:type*数组名元素个数;,int*p 4;,定义(说明)p是含有4个元素的指针数组,每个元素都是一个指向整型变量的指针(二级指针)。,数组名p为数组的首地址。,使用前必须让各元素指向对象。,int i,a34,*p3;for(i=0;i3;i+)p i=a i;*(pi+j)=2;/*通过指针数组引用
7、数组元素aij*/,2、用指针数组处理多字符串,例:用指针数组对字符串进行排序。,#include void main(void)int i,j;char*ps=Get,Put,Time,Date,*p;printf(排序前字符串:n);for(i=0;i0)p=psi;psi=psj;psj=p;printf(排序后字符串:n);for(i=0;i4;i+)puts(psi);,循环实现排序,ps,2、指针数组访问二维数组,通过指针数组输出数组元素的值,分析运行结果。,#include void main()int i,j;int a33=1,2,3,4,5,6,7,8,9;int*pa3=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 13 指针 字符串 字符 数组
三一办公所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。




链接地址:https://www.31ppt.com/p-5850825.html