已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言字符数组的应用用来存放字符量的数组称为字符数组。 7.1.1字符数组的定义 形式与前面介绍的数值数组相同。例如: char c10; 由于字符型和整型通用,也可以定义为int c10但这时每个数组元素占2个字节的内存单元。 字符数组也可以是二维或多维数组。例如: char c510; 即为二维字符数组。 7.1.2字符数组的初始化 字符数组也允许在定义时作初始化赋值。 例如: char c10=c, , p, r, o, g, r, a,m; 赋值后各元素的值为:数组C c0的值为c c1的值为 c2的值为p c3的值为r c4的值为0 c5的值为g c6的值为r c7的值为a c8的值为m 其中c9未赋值,由的值为p系统自动赋予0值。当对全体元素赋初值时也可以省去长度说明。例如: char c=c, ,p,r,o,g,r,a,m; 这时C数组的长度自动定为9。 7.1.3字符数组的引用 【例7.8】 main() int i,j; char a5=B,A,S,I,C,d,B,A,S,E; for(i=0;i=1;i+) for(j=0;j0) printf(st1st2n); if(k0) printf(st1st2”。 测字符串长度函数strlen 格式: strlen(字符数组名) 功能:测字符串的实际长度(不含字符串结束标志0) 并作为函数返回值。 【例7.17】 #includestring.h main() int k; static char st=C language; k=strlen(st); printf(The lenth of the string is %dn,k); C语言数组程序举例【例7.18】把一个整数按大小顺序插入已排好序的数组中。 为了把一个数按大小插入已排好序的数组中,应首先确定排序是从大到小还是从小到大进行的。设排序是从大到小进序的,则可把欲插入的数与数组中各数逐个比较,当找到第一个比插入数小的元素i时,该元素之前即为插入位置。然后从数组最后一个元素开始到该元素为止,逐个后移一个单元。最后把插入数赋予元素i即可。如果被插入数比所有的元素值都小则插入最后位置。 main() int i,j,p,q,s,n,a11=127,3,6,28,54,68,87,105,162,18; for(i=0;i10;i+) p=i;q=ai; for(j=i+1;j10;j+) if(qaj) p=j;q=aj; if(p!=i) s=ai; ai=ap; ap=s; printf(%d ,ai); printf(ninput number:n); scanf(%d,&n); for(i=0;iai) for(s=9;s=i;s-) as+1=as; break; ai=n; for(i=0;iai时,则由一个内循环把i以下各元素值顺次后移一个单元。后移应从后向前进行(从a9开始到ai为止)。 后移结束跳出外循环。插入点为i,把n赋予ai即可。 如所有的元素均大于被插入数,则并未进行过后移工作。此时i=10,结果是把n赋于a10。最后一个循环输出插入数后的数组各元素值。 程序运行时,输入数47。从结果中可以看出47已插入到54和 28之间。 【例7.19】在二维数组a中选出各行最大的元素组成一个一维数组b。 a=( 3 16 87 65 4 32 11 108 10 25 12 37) b=(87 108 37) 本题的编程思路是,在数组A的每一行中寻找最大的元素,找到之后把该值赋予数组B相应的元素即可。程序如下: main() int a4=3,16,87,65,4,32,11,108,10,25,12,27; int b3,i,j,l; for(i=0;i=2;i+) l=ai0; for(j=1;jl) l=aij; bi=l; printf(narray a:n); for(i=0;i=2;i+) for(j=0;j=3;j+) printf(%5d,aij); printf(n); printf(narray b:n); for(i=0;i=2;i+) printf(%5d,bi); printf(n); 程序中第一个for语句中又嵌套了一个for语句组成了双重循环。外循环控制逐行处理,并把每行的第0列元素赋予l。进入内循环后,把l与后面各列元素比较,并把比l大者赋予l。内循环结束时l 即为该行最大的元素,然后把l值赋予bi。等外循环全部完成时,数组b中已装入了a各行中的最大值。后面的两个 for语句分别输出数组a和数组b。 【例7.20】输入五个国家的名称按字母顺序排列输出。 本题编程思路如下:五个国家名应由一个二维字符数组来处理。然而语言规定可以把一个二维数组当成多个一维数组处理。 因此本题又可以按五个一维数组处理,而每一个一维数组就是一个国家名字符串。用字符串比较函数比较各一维数组的大小,并排序,输出结果即可。编程如下: main() char st20,cs520; int i,j,p; printf(input countrys name:n); for(i=0;i5;i+) gets(csi); printf(n); for(i=0;i5;i+) p=i;strcpy(st,csi); for(j=i+1;j5;j+) if(strcmp(csj,st)0) p=j;strcpy(st,csj); if(p!=i) strcpy(st,csi); strcpy(csi,csp); strcpy(csp,st); puts(csi);printf(n); 本程序的第一个for语句中,用gets函数输入五个国家名字符串。上面说过语言允许把一个二维数组按多个一维数组处理,本程序说明cs520为二维字符数组,可分为五个一维数组cs0,cs1,cs2,cs3,cs4。因此在gets函数中使用csi是合法的。在第二个for语句中又嵌套了一个for语句组成双重循环。这个双重循环完成按字母顺序排序的工作。在外层循环中把字符数组csi中的国名字符串拷贝到数组st中,并把下标i赋予P。进入内层循环后,把st与c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 船舶火灾与爆炸事故应急处置措施培训
- 润滑工岗位安全操作规程培训
- 项目4《学做竹简书》(教案)湘人版劳动六年级下册
- 脱糖岗位安全操作规程培训课件
- 新教材高中数学 第11章 立体几何初步 11.1 空间几何体 11.1.3 多面体与棱柱教学设计 新人教B版必修第四册
- 安全阀拆卸安装操作规程培训
- 沙石褥垫层施工安全技术交底培训
- 采煤工作面超前替棚安全技术措施培训
- 塔吊安全使用方案培训课件
- 高中历史 专题九 当今世界政治格局的多极化趋势 9.3《多极化趋势的加强》教学设计 人民版必修1
- 2025绵阳东辰本部小升初数学考试试题库(含答案)
- 2026 年秋季校园传染病案例警示教育
- 2026年半年度消费新潜力白皮书-魔镜洞察-202609
- 2026银行业务创新研究与服务模式分析与发展方向研究报告
- 新版2026秋统编版(新版)小学道德与法治五年级上册(全册)知识点清单梳理
- 丰田TSC 7000G-2023中文版(丰田汽车电气电子部件环境测试标准)
- 湖南省(2026年)公开遴选公务员笔试题及答案解析(B类)
- 2026国考行测言语理解必背高频成语(完整版考场专用)
- (正式版)DB31∕T 885-2024 《 老旧住宅电梯安全评估规范》
- 肠梗阻诊疗指南(2024版)
- 华安证券股份有限公司招聘笔试题库2026
评论
0/150
提交评论