版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计
第6章数组
--字符数组及字符串第六章数组之字符数组及字符串字符数组的定义、初始化及引用字符串的结束标志字符数组的输入和输出字符串处理函数教学目标课程回顾
1.以下对一维数组a的定义中正确的是()。A.chara(10);B.inta[0..100];C.inta[5];D.intk=10;inta[k];2.以下对二维数组的定义中正确的是()。A.chara[4][]={1,2,3,4,5,6};B.inta[][3];C.inta[][3]={1,2,3,4,5,6};D.inta[][]={1,2,3},{4,5,6};
6.3字符数组
字符数组:存放字符数据的数组。一维字符数组:存放一个字符串(每个数组元素存放一个字符)二组字符数组:存放多个字符串(行数是字符串的个数)形式:char数组名[常量表达式]char数组名[常量表达式]
[
常量表达式]常量表达式:整数、字符、符号常量6.3.1字符数组的定义6.3.2字符数组的初始化对字符数组初始化,最容易理解的方式是逐个字符赋给数组中的各元素。如:chara[10]={‘i’,’,’a’,’m’,’’,’h’,’a’,’p’,
’p’,’y’};如果在定义字符数组时不进行初始化,则数组中各元素的值是不可预料的。如果花括弧中提供的初值个数(即字符个数)大于数组长度,则按语法错误处理。如果初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余的元素自动定为空字符(即‘\0’)。例如:如果提供的初值个数与预定的数组长度相同,在定义时可以省略数组长度,系统会自动根据初值个数确定数组长度。也可以定义和初始化一个二维字符数组。6.3.3字符数组的引用例:输出一个字符串输出一个钻石图形6.3.4字符串和字符串结束标志为了测定字符串的实际长度,c语言规定了一个“字符串结束标志”,以字符’\0’作为标志。如果有一个字符串,前面9个字符都不是空字符(即‘\0’),而第10个字符是‘\0’,则此字符串的有效字符为9个。系统对字符串常量也自动加一个‘\0’,作为结束符。字符串的长度:第一个‘\0’以前字符的个数。可以用字符串常量来使字符数组初始化。
例如charc[]={“Iamhappy”};
也可以省略花括弧,直接写成charc[]=“Iamhappy”;
它与下面的数组初始化等价charc[]={‘I’,’’,’a’,’m’,’’,’h’,’a’,’p’,’p’,’y’,’\0’};例:charc[10]={“China”};数组c的前5个元素为’C’,’h’,’i’,’n’,’a’,第6个元素为’\0’,后4个元素也设定为空字符。练习:写出下列二维字符数且初始化的形式。charfruit[][7]={“Apple”,”Orange”,”Grape”,”Peach”};例:定义了以下的字符数组:charc[]={“Pascalprogram”};
现在,想用一个新的字符串代替原有的字符串,从键盘向字符数组输入:Hello,如果不加’\0’,字符数组中的字符如下:
Hellolprogram6.3.5字符数组的输入输出逐个字符输入输出。用格式符“%C”输入或输出一个字符。将整个字符串一次输入或输出。用“%s”格式符,意思是对字符串的输入输出。例:charc[]={“China”};printf(“%s”,c);
此数组在内存中的状态说明:(1)用%s格式符输出字符串时,printf函数中的输出项是字符数组名,而不是数组元素名。(2)如果数组长度大于字符串实际长度,也只输出到\0结束。(3)输出字符不包括结束符‘\0’。(4)如果一个字符数组中包含一个以上’\0’,则在第一个‘\0’时输出就结束。(5)可以使用scanf函数输入一个字符串。例:scanf(“%s”,c),c是已经定义的数组名,并且长度短于已定义的字符数组的长度。
scanf函数输入多个字符串时,需要用空格分隔。例如:charstr1[5],str2[5],str3[5];scanf(“%s5%s%s”,str1,str2,str3);
scanf函数中的输入项如果是字符数组,则不要再加地址符&,因为在C语言中,数组名代表该数组的起始地址。6.3.6字符串处理函数1.puts函数:作用是将一个字符串输出到终端。
charstr[]={“China\nBeijing”};puts(str);
输出结果:ChinaBeijing2.gets函数:作用是从终端输入一个字符串到字符数组,并且得到一个函数值。
例:
gets(str)
从键盘输入:Computer注意:用puts和gets函数只能输入或输出一个字符串,不能写成puts(str1,str2)或gets(str1,str2)3.strcat函数:作用是连接两个字符串,把字符串str2连接到str1后面,放在数组str1中得到一个新的数组。格式:strcat(字符串1,字符串2)例:charstr1[30]={“Heis”};
charstr2[]={“aboy.”};
print(“%s”,strcat(str1,str2);输出:Heisaboy.
4.strcmp函数:作用是比较字符串str1和str2格式:strcmp(字符串1,字符串2)例:strcmp(str1,str2);
strcmp(“China”,”Korea”);
strcmp(str1,”Beijing”);注:比较的结果由函数值带回
(1)两个字符串自左至右按ascii码比较,至到出现不同的字符或\0结束。(2)字符串1=字符串2,函数值为0.(3)如果字符串1>字符串2,函数值为一正(4)如果字符串1<字符串2,函数值为一负
两个字符串比较,不能用if语句,而只能使用strcmp5.
strlen函数:作用是测试字符串中的实际长度,不包括’\0’在内。格式:strlen(字符数组)例如:charstr[10]={“China”};printf(“%d”,strlen(str));
输出结果是56.
strlwr函数:作用是将字符串中的大写字母换成小写字母。
格式:strlwr(字符串)7.strupr函数:作用是将字符串中的小写字母换成大写字母。格式:strupr(字符串)字符数组的初始化字符数组的引用字符数组的结束标记字符数组的输入和输出字符数组的函数应用课程小结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院满意度培训
- 光伏发电培训资料
- 福建省莆田市涵江区实验小学2023-2024学年三年级上学期期末检测数学试题
- T-XMSSAL 0110-2024 供厦食品 芦笋
- 期中模拟试卷(1-4单元) (试题)-2024-2025学年六年级上册数学北师大版
- 语文学习任务群的解读及设计要领
- 余静无机化学酸碱平衡
- 部编版六年级语文上册第七单元《京剧趣谈》教学课件
- 高中语文第11课师说课件5新人教版必修
- 路基石方填筑试验路段施工总结-
- 退役军人事务局一体化平台解决方案
- 园林绿化工程公司仓库保管员管理制度
- 7.4.1 二项分布 课件(共30张PPT)
- 房地产项目竣工验收全过程详解
- 仲夏夜之梦-中英对照
- 八年级语文双向细目表
- 半月板损伤的康复
- 2021年12月12日河北省直机关遴选公务员笔试真题及答案解析
- 金属与石材幕墙工程技术规范-JGJ133-2013含条文说
- 水资源规划及利用智慧树知到答案章节测试2023年长春工程学院
- 矩阵论智慧树知到答案章节测试2023年哈尔滨工程大学
评论
0/150
提交评论