




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章学习目标本章学习目标q重点掌握一维数组的定义和引用重点掌握一维数组的定义和引用q基本掌握二维数组的定义和引用基本掌握二维数组的定义和引用q熟练掌握字符型数组的定义和使用熟练掌握字符型数组的定义和使用q能正确使用字符串处理函数能正确使用字符串处理函数q学会使用数组解决实际问题学会使用数组解决实际问题6.1 一维数组的定义和引用一维数组的定义和引用6.2 二维数组的定义和引用二维数组的定义和引用6.3 字符数组与字符串字符数组与字符串6.4 常用的字符串处理函数常用的字符串处理函数Return 在数值计算与数据处理中,数组常用于处理具有相同类型的、批量有序的数据。 一维数组的定义一维数组的定义
2、数组同变量一样,也必须先定义、后使用。一维数组是只有1个下标的数组,定义形式如下:类型说明符 数组名 常量表达式;Returnint s5;int s5; /* 表示数组名为s,此数组有5个元素 */(1)数组元素的下标,是元素相对于数组起始地址的偏移量,所以从0开始顺序编号。如指定“int s5;”,表示数组 s有5个元素,这5个元素分别为s0,s1,s2,s3,s4,注意这里不存在数组元素s5。(2)数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。(3)在C语言中不允许用变量对数组的大小进行定义。u数组元素是数组的基本单元,
3、它是一种变量,其标识方法为数组名后跟一个下标。u下标指定元素在数组中的顺序号。数组与基本类型变量不同,只能引用数组中的某一个元素。uC语言规定,只能逐个地使用下标变量,而不能一次引用整个数组。在表达式中,数组只能以数组元素的形式存在。其中的下标只能为整型常量或整型表达式。 例如:x8,y5*3等。要特别注意定义数组时用到的“数组名常量表达式”和引用数组元素时用到的“数组名下标”是两个不同的概念。 int s15; /* 定义数组s,长度为15 */ d=s10; /* 引用数组s中序号为10的元素 */【例6-1】数组元素的引用。/*exam6_1*/main() int i,s5; for
4、(i=0; i=0; i-) printf(%dn,si);程序运行结果:1710521演示 在对数组进行声明的同时就给数组中各个元素一个值的方法叫做“数组初始化”。 初始化的一般形式为: 类型说明符 数组名n=值1,值2,.,值n;(1) 定义数组时对数组元素赋以初值。(2) 可以只给部分元素赋初值。(3) 如果想使一个数组中全部元素值为0,可以写成int a10=0,0,0,0,0,0,0,0,0,0;或int a10=0;(4) 对全部数组元素赋初值时,可以不指定数组长度,编译器会根据给出的初值的个数来决定数组的大小。Return1. 二维数组的定义二维数组定义的一般形式:类型说明符 数
5、组名常量表达式常量表达式;Return 定义了一个二行三列的数组,数组名为a,其下标变量的类型为整型。该数组的下标变量共有23个,即: a00,a01,a02 a10,a11,a12 二维数组的元素也称为双下标变量 其表示的形式为: 数组名行下标表达式 列下标表达式 说明:(1) “行下标表达式”和“列下标表达式”都应是整型表达式或符号常量。(2) “行下标表达式”和“列下标表达式”的值,都应在已定义数组大小的范围内。例如:int a45;则第一维下标最小值为0,最大值为3,第二维下标最小值为0,最大值为5。 (3)对基本数据类型的变量所能进行的操作,也都适合于相同数据类型的2维数组元素。 二
6、维数组也与一维数组一样可以在说明时进行初始化。二维数组的初始化要特别注意各个常量数据的排列顺序,这个排列顺序与数组各元素在内存中的存储顺序完全一致。 (1)按行赋初值。 (2)将所有数据写在一个花括弧内,按数 组排列的顺序对各元素赋初值。 (3)可以对部分元素赋初值。 int a34=1,5,9; int b34=1,0,6,0,0,11;【例6-12】给矩阵a赋值,并输出该矩阵的值。/*exam6_12*/main( )int a33= 1,2,3,4,5,6,7,8,9, i, j ;for(i=0; i3; i+)for(j=0; j3; j+) printf(%5d,aij);prin
7、tf(n); 程序运行结果:1 2 3 4 5 6 7 8 9演示 用来存放字符数据的数组是字符数组,每一个元素存放一个字符。 1.字符数组的定义 其定义格式为: char 数组名下标总数; 字符数组也可以是二维(或多维)数组。 其定义格式为: char 数组名下标1总数下标2总数; Return 在C语言中,字符型数组在数组说明时进行初始化,可以按照一般数组初始化的方法用“ ”包含初值数据。(1)定义时逐个字符赋给数组中各元素。(2)可省略数组长度。(3)若初值个数小于数组长度,则只将这些字符赋给数组中前面那些元素,其余元素自动定为0。可以引用字符数组中的一个元素,得到一个字符。【例6-15
8、】输出一个字符串。/ /* *exam6_15exam6_15* */ /main ( )main ( ) char c12=h, e, l, l, char c12=h, e, l, l, o, , w, o, r, l, o, , w, o, r, l, d, ! ;d, ! ;int i ;int i ;for(i=0; i12; i+)for(i=0; i12; i+)printf(“%c”, ci);printf(“%c”, ci);printf(“n”);printf(“n”); 程序运行结果:hello world!hello world!演示 所谓字符串,是指若干有效字符的序列
9、,用双撇号将若干字符括起来。C语言中的字符串,可以包括字母、数字、专用字符、转义字符等。 如:“I am a girl” “x” “78+5” 字符数组的输入输出与数值型数组的输入输出不同。数值型数组只能逐个元素输入输出,而字符数组的输入输出可以有以下两种方法:(1)逐个字符输入输出。用“%c”格式符。(2)将整个字符串一次输入或输出。用“%s”格式符。采用字符串方式后,字符数组的输入、输出和初始化将变得比较简单。Return C语言提供了丰富的字符串处理函数,大致可分为字符串的输入、输出、合并、修改、比较、转换、复制、搜索几类。使用这些函数可以大大减轻编程的工作量。 需要注意的是要使用输入输
10、出的字符串函数,必须在使用前包含头文件stdio.hstdio.h ;使用其它字符串函数则应包含头文件string.hstring.h。下面介绍几种最常用的字符串函数。Returnputs函数的一般格式:puts (字符数组名) 功能:把字符数组即字符串中的字符,逐个输出到显示器,遇到第一个0结束输出,并自动输出一个换行符。该函数一次只能输出一个字符串,而printf()函数也能用来输出字符串,且一次能输出多个。功能:是从终端输入一个字符串到字符数组,并得到一个函数值,该函数值是字符数组的起始地址。该函数函数一次只能输出一个字符串,输入的字符串中允许包含空格,而scanf()函数不允许。本函数
11、包含在头文件stdio.h中。功能:将字符数组2中的字符串,连接到字符数组1中字符串的后面,连接前两个字符串都有结束标志0,连接后“字符数组”中存储的字符串的结束标志0被舍弃,只在目标串的最后保留一个0。这里是将字符串2追加到字符串1后,不会覆盖字符串1。本函数返回值是字符数组1的首地址。例如: char str120=“Beijing ”; char str2=”Shanghai”; printf(“%s”,strcat(str1,str2); 输出:Beijing Shanghaistrcpy的一般格式:strcpy(字符数组名1,字符数组名2) 功能:把字符数组2中的字符串,复制到字符数
12、组1中,字符串结束标志0也一同复制。字符数组1的长度必须不小于字符数组2的长度。注意,它将覆盖字符数组1,这一点与strcat完全不同。不能用赋值运算符“”将一个字符串直接赋值给一个字符数组,只能用strcpy()函数来处理。 例如: char str110,str2 =”China”; strcpy(str1,str2); puts(str1); 输出:Chinastrcmp的一般格式:strcmp(字符数组名1,字符数组名2)功能:按照ASCII码值比较两个字符数组中的字符串,并由函数返回值返回比较结果。本函数包含在头文件string.h中。strlen函数的一般格式: strlen(字符
13、数组名) 功能:测出字符串的实际长度(不含字符串结束标志0),并作为函数返回值返回。本函数包含在头文件string.h中。 char str10=”China”; printf(“%d”,strlen(str); 输出:5 而字符数组str的长度为10。strlwr函数的一般格式:strlwr(字符串)功能:将字符串中的大写字母转换成小写,其它字符(包括小写字母和非字母字符)不转换。lwr是lowercase(小写)的缩写。例如:strlwr(“ABC”)的值为“abc”。strupr函数的一般格式:strupr(字符串)功能:将字符串中小写字母转换成大写,其它字符(包括大写字母和非字母字符)不转换。upr是upperc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人聘请会计合同范例
- 本地农业链协议
- 中央空调报价合同范例
- 五金产品购销合同范例
- 住房政策对社区影响-全面剖析
- 劳务派遣实施合同样本
- 关于装修拆除合同范例
- 亲子协议合同范例
- 北京市家具购买合同标准文本
- 公司保密协议合同范例
- DB4206-T 41-2021 程河柳编加工技术规程
- 特种设备作业人员考试机构资质申请表
- 直销成功八步培训课程课件讲义
- 北京重点高中入学签约个人简历科技特长生模板
- 消保审查实施细则(2023年版)
- GB/T 2000-2000焦化固体类产品取样方法
- 功能材料概论-课件
- XX单线铁路隧道施工设计
- 叶曼讲《道德经》讲义第1~10章
- 地下车库地坪施工工艺工法标准
- 生物化学工程基础(第三章代谢作用与发酵)课件
评论
0/150
提交评论