已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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);/*通过指针引用字符串*/,字符指针可直接指向字符串:char*chp=“Hello!”;,输出?,无名一维字符数组0,例1:输出字符串,#includevoidmain()chars=“computer”,*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:在输入的字符串中删除指定的字符,2000H,p,0,ch,0,i,运行程序:abcdefc,2000H,str,c,str,printf(“%s”,ps);或:puts(ps),Thenewstringis:abdef,字符指针(变量)与字符数组的区别,字符指针与字符数组:两者均可存储和运算字符串。主要区别:存储格式不同:字符指针变量中存放的是字符串的首地址(2字节);而字符数组中存放的是整个字符串(一个数组元素存放一个字符)。性质不同:字符数组名是地址常量,不能改变(指向首字符);字符指针是地址变量,可以改变(指向不同的字符)。赋值方式不同:,字符指针,char*ps=“Hello”;,char*ps;ps=“Hello”;,字符数组,charst=“Hello”;,charst80;st=“Hello”或:st=“Hello”,用循环逐个赋值或用strcpy()函数赋值,例:统计字符串中的各元音字母的个数(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+)switch(*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);,循环遍历数组元素,判断字母。,判断字符串是否结束,2.字符串指针做函数参数(见P183表6-2),#includevoidcpystr(char*s1,char*s2)while(*s2!=0)*s1+=*s2+;*s1=0;voidmain(void)charstr120,str2=123456abcdef;printf(str2:%sn,str2);printf(str1:%sn,str1);cpystr(str1,str2);printf(str2:%sn,str2);printf(str1:%sn,str1);,去掉该句,对程序结果是否有影响?,例:编写函数,用指针进行字符串的复制,6.2.4指针数组,指针是存放其它数据对象地址的变量。也可以构成数组。每个数组元素均为一个指针变量,且在内存中连续存放。,1.指针数组定义,格式:type*数组名元素个数;,int*p4;,定义(说明)p是含有4个元素的指针数组,每个元素都是一个指向整型变量的指针(二级指针)。,数组名p为数组的首地址。,使用前必须让各元素指向对象。,inti,a34,*p3;for(i=0;i3;i+)pi=ai;*(pi+j)=2;/*通过指针数组引用数组元素aij*/,2、用指针数组处理多字符串,例:用指针数组对字符串进行排序。,#includevoidmain(void)inti,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、指针数组访问二维数组,通过指针数组输出数组元素的值,分析运行结果。,#includevoidmain()inti,j;inta33=1,2,3,4,5,6,7,8,9;int*pa3=a0,a1,a2;int*p=a0;for(i=0;i3;i+)for(j=0;j3;j+)printf(%5d,paij);printf(n);for(i=0;iTuesday,6.3.3main函数的参数,如DOS命令:C:testaabbcc,可执行文件名,命令参数,主函数main()也可以带参数,由于main()不能被其他函数调用,故无法在程序内部取得实参值。它的参数来自dos提示符命令行(如用命令行运行编译连接好的.exe文件),实参就是命令行输入的字符串。主函数一般有两个参数。,voidmain(intargc,char*argv)(函数体),整型变量。存放命令行字符串的个数(以空格分隔)。,指向字符的指针数组。分别存放各字符串参数的地址。,举例:编程显示命令行输入的参数。,#includevoidmain(intargc,char*argv)inti;printf(argc=%dn,argc);for(i=0;i,argc4,*举例:在字符串中查找特定的字符。,#include#includechar*lstrchar(char*,char);voidmain(void)charc,*p,str80;gets(str);scanf(“%c”,返回指针的函数。,指向空!,课堂作业:,#includemain()inti;chars5,*p;for(i=0;is;p-)printf(%s,%cn,p,*p);,写出下列程序运行结果。,#includeintf(int*a,intn)if(n1)return*a+f(a+1,n-1);elsereturn*a;voidmain()intaa10=1,2,3,4,5,6,7,8,9,10,s;s=f(aa+1,4);printf(%dn,s);,思考题:,作业题:,p188习题一、选择题720。二、填空题47。三、程序运行题13。四、程序填空题2、4。五、程序设计题2、3、6。,上机验证p178例6.19,分析行指针定义(*p)n和指针数组定义*pn的异同点,进一步理解和记忆二维数组中数组元素和其地址的表示方法。,编程题:,#include#defineN3voidss(intc3,int*s1,int*s2);voi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026中国邮政集团有限公司湖南省分公司招聘备考题库附答案详解(培优b卷)
- 2026河北博物院选聘2人备考题库附答案详解(综合卷)
- 2026年台州市玉环市公开招聘公办幼儿园劳动合同制教师7人备考题库含答案详解(模拟题)
- 2026广东汕头市潮阳区西胪镇乡村公益性岗位招聘备考题库及完整答案详解一套
- 2026年台州市教育局直属学校教师招聘14人备考题库及答案详解(有一套)
- 2026云南红河州建水滇南云水环境治理有限公司招聘2人备考题库及一套答案详解
- 2026湖北十堰市张湾区人民医院招聘编外工作人员备考题库完整参考答案详解
- 2026海南藏族自治州人民医院校园引才6人备考题库附答案详解(精练)
- 2026广东珠海市香洲凤凰幼教集团上冲园区招聘合同制教职工2人备考题库附答案详解(研优卷)
- 2026-2030中国家电物流行业市场发展分析及前景趋势与投资前景研究报告
- 2026年交通AI模型拥堵评估与治理策略
- 2026年医疗器械监督管理条例培训试题及答案
- 成人脑卒中食养指南(2026年版)
- 疟疾防治医护培训课件
- 2026年供应链管理师理论知识考试复习题库(新版)
- 2026年加油站防恐应急处置方案
- 高效新闻稿写作技巧与模板
- 2026年国企物业招聘考试试题及答案
- 5m以上深基坑开挖施工方案
- GA 1809-2022城市供水系统反恐怖防范要求
- GB/T 13664-2006低压输水灌溉用硬聚氯乙烯(PVC-U)管材
评论
0/150
提交评论