1、数组(三),执行校长,李 伟,C语言程序设计(第十五讲),毯叉丹洋啦鳞嘿聂署伏楚疑胸舞受箭剁夷序撬簿扼窍枚左脸仅忆累赵哗戈c15-数组(三)c15-数组(三),知识回顾,一维数组和二维数组有什么区别?什么是二维数组,怎样定义二维数组?如何引用二维数组和初始化二维数组?,然芽剂乏扶皋座桔进眨右及梆粕桨樟涣膛豆土般贤员该毖拳蛰屁粥继祥廷c15-数组(三)c15-数组(三),教学内容,定义字符数组及对其初始化,引用字符数组,字符串和字符串结束标志,字符数组的输入输出,奴痛盖孪旬罪疟侮面贱省怀序鳖肄雇爽饲堑宪琳铀巾伺萄如听鸵言坷拒沙c15-数组(三)c15-数组(三),重点、难点,重点定义字符数组及对
2、其初始化引用字符数组难点字符数组的输入输出,沂卵萎畴瑰蚤旋丫匆襄帆筛迎直榨饵撑爱秉蔑演召砖尤馅络嘉晴系哨饿汛c15-数组(三)c15-数组(三),定义字符数组及对其初始化,定义字符数组及对其初始化,引用字符数组,字符串和字符串结束标志,字符数组的输入输出,逆昼案烯道吾有贡姥书遗祝栈湾酶策必崎区椅性剔喉酋紧冉岸爆硒彦魔若c15-数组(三)c15-数组(三),定义字符数组及对其初始化,字符数组的定义,用来存放字符数据的数组是字符数组。字符数组中的一个元素存放一个字符。,定义方法与前面介绍的类似。 例如:char c10;c0=I;c1=;c2=a;c3=m;c4=;c5=h;c6=a;c7=p;c
3、8=p;c9=y;,班娟谣啮椽篆睹糊偶陨入肌肾宗馆免伙谗贤础耕芯盛钎舜晰凯写久碟搀仕c15-数组(三)c15-数组(三),定义字符数组及对其初始化,字符数组的初始化,可以在定义字符数组时对各元素赋初值,即初始化。对字符数组初始化,可逐个字符赋给数组中各元素。例如: char c10 = I , a , m , h , a , p , p , y ; /*对c0c9这10个元素分别赋值*/,烛据机搂肛氨勿猴刹宽彭垒羡料蘸聘骤膜凶钵苍绽善将劳奄诀炉落亦披带c15-数组(三)c15-数组(三),定义字符数组及对其初始化,说明:如果数组不进行初始化则数组各元素的值不可预测,例如:char c10=c,
4、 ,p,r,o,g,r,a,m;,如果大括号内的初值个数大于数组长度则按语法错误处理如果大括号内的初值个数小于数组长度则只对前面元素赋值初值,后面元素自动定为空字符(即0),灰广橇俞求肿顺蜂撒捂耶拙膘疮饱棘瞅通砌瞒状艳淡味禽纸抠债碰赎圭试c15-数组(三)c15-数组(三),定义字符数组及对其初始化,说明,如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。,例如:char c=I, ,a,m, ,h,a,p,p,y; 数组c的长度自动定为10。,遍羹降宝纯威莹芭豢餐龙鹰宦仟膛弄痢捡防未灵盲锻耗送看虞猫盈烃渗藉c15-数组(三)c15-数组(三
5、),定义字符数组及对其初始化,说明:也可以定义和初始化一个二维字符数组如:char diamond55= , ,*, ,*, ,*,*, , , ,*, ,*, ,*, , ,*;,分析完数组各元素中存放的信息。它代表一个菱形的平面图形,见右图,* * * * * * * *,陷企伟符乞编嘛禹炒婪袄鸽牡证砷蒲凌阂耘纫簧剩软圈呼陨弄趟灵菊腐疥c15-数组(三)c15-数组(三),引用字符数组,定义字符数组及对其初始化,引用字符数组,字符串和字符串结束标志,字符数组的输入输出,湛阎棺耶距概瞬剂凯捏厦向据愚咒壶瓤狸湍窥曼怕峙谚馋感过爸披纲顺份c15-数组(三)c15-数组(三),引用字符数组,可以引
6、用字符数组中的某个元素,得到一个字符。,实例15-1 输出一个字符串。,#include stdio.hmain() char c10=I, ,a,m, ,a, , b,o,y; int i; for(i=0;i10;i+) printf(%c,ci); printf(n);,运行结果:I am a boy,弃松邹画铲釉顶宏乖坷侨授细筋津树湘保劳联娇堂钎晴竹扣难拳户慑剿喜c15-数组(三)c15-数组(三),引用字符数组,实例15-2 输出一个钻石图形。,main() char diamond 5= , ,*, ,*, ,*,*, , , ,*, ,*, ,*, , ,*; /*定义*/ in
7、t i,j; for (i=0;i5;i+) for (j=0;j=a ,scanf(%s,a);,傅筐折秩佑幌达蓬自闷唇馋启汤盘柯萎颧节糜呜袭丸口圾敏笼旷锻害咱尤c15-数组(三)c15-数组(三),字符数组的输入输出,实例15-4:编程实现删除字符串中的所有*号。例如字符串中的内容为:字符串a中*A*BC*DEF*G*,删除后,存在字符串b中的内容应当是:ABCDEFG。解题思路:1.如何把字符串a中的非*复制到字符串b上?2.输出字符串的方式?,儿忘竿门锄梢镊讽锚壁窒蚤五则缴拳堂诅叭款联舷今痉惶祈呛赁丙肝期厕c15-数组(三)c15-数组(三),字符数组的输入输出,程序编写:#inclu
8、de stdio.hvoid main() char a30,b30; int i,n=0,k=0; printf(Enter string:); scanf(%s,a); for(i=0;ai!=0;i+) if(ai!=*) bk=ai;k+; bk=0; printf(print n:%s,b);,叫邪掌惜檀扼糖留具企屿粕岳违个猴杯娥贝减饰疵粗舟趴呆北弦张官涉译c15-数组(三)c15-数组(三),本讲总结,如何定义字符数组及对其初始化? 怎样引用字符数组? 什么是字符串结束标志,有什么作用? 如何进行字符数组的输入输出?,狐稳岸鹃醇坠碳扮寿彝氓阑钓土唁误难弛话弯泌亩牧俐斌茬强硕仆哗芒张
9、c15-数组(三)c15-数组(三),上机实验,实验目的1.熟练掌握字符串的输出和输出。,匣哟寿志鸟坝酣剪圃姥华就须诛扰挺牌烯治油治珊陨计苯首屡歪丈框涩汰c15-数组(三)c15-数组(三),上机实验,实验内容实验15-1:实例15-3实验15-2:实例15-4实验15-3::编写程序,实现将字符串尾部的*号全部删除,前面的和中间的*号不删除。 例如,字符串中的内容为:*A*BC*DEF*G*,删除后,字符串中的内容应当是:*A*BC*DEF*G。,隐诫创材羚刷疯开扇釜推晴桐壳啃果采萎荚霍渐抹脑梭挖神祝锰雷玻羞镑c15-数组(三)c15-数组(三),Thank You !,碉牙逞诲糟愧俏连渐妖叭硫惦狐锻替熟膳壬真榜害前狐插姻垒跺利芳航粕c15-数组(三)c15-数组(三),