c语言数组和字符串.ppt

c语言数组和字符串.ppt

ID:51643514

大小:353.00 KB

页数:35页

时间:2020-03-27

上传者:U-25935
c语言数组和字符串.ppt_第1页
c语言数组和字符串.ppt_第2页
c语言数组和字符串.ppt_第3页
c语言数组和字符串.ppt_第4页
c语言数组和字符串.ppt_第5页
资源描述:

《c语言数组和字符串.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

C/C++程序设计 7.1一维数组一维数组类型声明的语法形式为:TName[size]T:类型名,如int型,float型等;Name:数组名;size:常量表达式,表示数组的大小。数组大小的确定1.如果在对一维数组进行初始化时给出了全部初始值,则数组声明中的元素个数可以省略,编译器会根据初始值的个数,自动计算出元素个数。2.可以用符号常量或常量表达式来说明数组元素的个数。2 数组:是相同类型变量的有序集合。元素:一个数组里集合了多个数据对象,这些数据对象被称为数组中的元素。数组中的每一个元素用统一的数组名称和下标来唯一确定。数组元素表示形式:数组名[下标]数组名:合法的标识符下标:元素在数组中的位置,数组的下标从0开始。数组长度:数组中的元素个数 一维数组的定义和引用1、一维数组的定义当数组中每个元素都只带有一个下标时,这个数组就被称为一维数组。数据类型数组名[常量表达式];例如:inta[6];a[0]0145a[1]a[2]a[3]a[4]a[5]23a 注意事项:1.“数据类型名”可以是任意的数据类型。inta[3];floatb[5];charc[6];2.数组的下标必须是整型常量表达式intn=10;intb[2.5];inta[n]; 2、一维数组的引用数组必须先定义,后使用只能逐个引用数组元素,不能一次引用整个数组。inta[10];printf(“%d”,a);()for(j=0;j<10;j++)printf(“%dt”,a[j]);() 定义数组之后,数组中的每一个元素就相当于一个变量。对变量的一切操作同样适用于数组。a[2]=2;b[0]=5;a[1]=a[2]+a[3];scanf(“%d”,&a[2]);printf(“%d”,a[2]); 数组名是数组变量在内存中的起始地址,定义了数组之后,这个地址固定,相当于一个地址常量。inta[10];printf(“%d”,a);printf(“%d”,&a[0]); 一维数组的赋值1、一维数组的初始化赋值inta[3]={1,2,3};{}括起来的部分叫做初值列表赋值的结果:a[0]=1a[1]=2a[2]=3 初值列表中初值的个数不能超过数组的长度。inta[3]={1,2,3,4};如果初值列表中初值的个数小于数组定义的长度,未指定的元素赋值为零。inta[3]={1,2};a[0]=1a[1]=2a[2]=0 给全部数组元素赋初值时,数组的大小可以省略。inta[]={1,2,3,4,5};赋值后,数组a的长度为5;注意区分:inta[];---------错误!!inta[]={1,2,3,4,5};--正确! 思考:比较下列几种数组初始化方法:inta[5]={1,2,3,4,5};inta[]={1,2,3,4,5};inta[5]={1,2,3};inta[]={1,2,3}; 2、一维数组在程序中赋值只有初始化的时候能对数组整体赋值,其他时候必须对数组元素单独赋值。inta[5];a={1,2,3,4,5};a[5]={1,2,3,4,5}; 逐个赋值floata[4];a[0]=1.23;a[1]=3.4;a[2]=5.32;a[3]=3.67;用循环语句赋值例:将数组a的各元素赋值为奇数序列inta[10],i;for(i=1;i<10;i++)a[i]=2*i+1; 例:接收键盘输入的数据给数组元素inta[10],i;for(i=1;i<10;i++)scanf(“%d”,&a[i]);思考:inta[3];scanf(“%d%d%d”,a);是否正确?? 数组的应用例1:从键盘输入5个整数,将它们反序输出。main(){inti;intnums[5];for(i=0;i<5;i++)scanf("%d",&nums[i]);for(i=4;i>=0;i--)printf("%d",nums[i]);} 例2:计算从键盘上任意键入的10个数的和。main(){inti;floatnum[10],sum=0.0;printf(“Input10numbers: ”);for(i=0;i<10;i++)scanf("%f",&num[i]);for(i=0;i<10;i++)sum=sum+num[i];printf("Thesumis%8.3f ",sum);} 例题1、定义含有10个元素的数组,并将数组的元素按逆序重新存放后输出。2、若有一维数组,存放10个整数,从键盘输入一个数,输出与该值相同的数组元素的下标,若无相同值提示该值不存在。3、从键盘输入10个不相同的整数,存放在数组里,找出值最大的元素,并输出最大值所在的元素下标。4、从键盘输入10个不同整数,存放在数组里,删除其中下标为4的元素。 例题5、在一维数组中找出值最小的元素,并将其值与第1个元素的值对调。6、将10个数由小到大排序。 7.2多维数组当一个一维数组中的每个元素本身又是一个一维数组时,该数组为一个二维数组。一、二维数组的定义1.格式:类型标识符[长度1][长度2];2.二维数组元素需要两个下标表示:例:inta[3][4]表示数组a中有3行4列共12个数据。3.二维数组在存储空间中是按行优先存储。 二、二维数组的引用格式:标识符[N1][N2]数组名[下标1][下标2]下标1从0到长度N1-1下标2从0到长度N2-1 三、二维数组的初始化方法:1.对全部元素赋初值,分行,各用一个{}inta[2][3]={{1,2,3},{4,5,6}};2.整体赋值,系统自动分行inta[2][3]={1,2,3,4,5,6};3.对部分元素赋初值,注意区别:inta[2][3]={{1},{2,3}};inta[2][3]={1,2,3};inta[2][3]={{0},{1,2,3}}; 7.3字符数组字符数据字符串数据数组中的各个元素均为字符变量每个元素只能存放一个字符字符数据字符常量字符变量字符串常量‘a’,’A’‘ ’,‘t’charc;“Hello” 字符串在数组中的存储格式字符串在字符数组中一个字符占用一个字节。字符串实际占有的存储单元数量等于字符串长度+1。例:要定义一个存放字符串“CHINA”的字符数组c,应定义为:charc[6];ANIHC串长=5c[0]c[1]c[2]c[3]c[4]c[5] 关于字符数组的几点说明1.字符串在内存中,系统自动加上‘’,作为字符串结束标记,字符串所占字节数为串中字符个数+1charc[6]=“abcde”;该串共占6个字节。2.程序中系统根据‘’来判断字符串是否结束,而不是通过数组长度。例如:charc[6]=“ab”;c的长度为6,而实际到b就结束。 字符数组的输入输出字符数组的输入1、用循环,同普通类型的数组:charc[10];inti;for(i=0;i<10;i++)scanf(“%c”,&c[i]);2、用“%s”,数组名,将数组当作字符串来输入。遇空格、回车结束。charc[10];scanf(“%s”,c);3、用gets()函数,一次输入一个整串,遇回车结束。如:charstr[10];gets(str); 字符数组的输入输出字符数组的输出(1)用printf函数,循环结构,逐一元素输出,格式为%c。(2)用printf函数,格式为%s,用数组名,整串输出(3)用puts()函数,一次输出整串。 说明字符数组可以按字符串输出,输出时,遇‘’结束字符数组中,若有多个‘’,遇到第一个‘’,输出结束 7.4字符串处理函数所有的函数在使用时,程序开始加文件包含:#include1.字符数组输出格式:puts(字符数组);功能:从终端输出指定字符数组 字符串处理函数2.字符数组输入,遇回车结束3.字符串连接例:charc1[10]=“abc”;strcat(c1,“efg”);puts(c1);格式:gets(字符数组);功能:从输入设备上输入一个字符串,格式:strcat(字符数组1,字符数组2);功能:将字符数组2连接到字符数组1的后面。 字符串处理函数4.字符串拷贝例:格式:strcpy(字符数组1,字符数组2);功能:将字符数组2复制给字符数组1。charc1[20]=“abcde”,C2[]=“LMN”;strcpy(c1,c2);或:strcpy(c1,“LMN”);puts(c1); strcpy说明(1)字符串不能彼此赋值,只能用拷贝函数。(2)字符数组1定义的长度必须比字符数组2大(或相等)。(3)字符数组2可以用字符串常量,字符数组1必须写成变量名。(4)连同‘’一起复制。(5)可以复制部分字符,即charc1[20],c2[]=“helloworld”;strcpy(c1,c2,4);只复制前4个字符。(6)如果原数组1中有字符,则复制后将原有内容覆盖(没覆盖的部分保留,但不显示)。 字符串处理函数5.字符串比较格式:strcmp(字符数组1,字符数组2);功能:从左到右逐一比较数组1和数组2各字符的ASCII值,若相同,继续,若不同,返回一个整数(以第一个不相同的字符比较为准)。如果数组1>数组2函数值为正如果数组1<数组2函数值为负如果数组1==数组2函数值为0数据的比较:charstr1[10],str2[10]if(strcmp(str1,str2)==0)…… 字符串处理函数6.求字符数组(串)的长度格式:strlen(字符数组)功能:测试字符数组中所含字符的个数charstr[10]=“Helloworld”;printf(“%d”,strlen(str));结果:11 字符串处理函数7.字符串字母大小写转换格式:strlwr(字符数组)功能:将数组中的大写字母转换成小写。格式:strupr(字符数组)功能:将数组中的小写字母转换成大写。charstr=“Hello”;printf(“%s”,strupr(str));printf(“%s”,strlwr(str));

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭