字符串与二维数组.ppt

上传人:小飞机 文档编号:5256738 上传时间:2023-06-19 格式:PPT 页数:26 大小:394.50KB
返回 下载 相关 举报
字符串与二维数组.ppt_第1页
第1页 / 共26页
字符串与二维数组.ppt_第2页
第2页 / 共26页
字符串与二维数组.ppt_第3页
第3页 / 共26页
字符串与二维数组.ppt_第4页
第4页 / 共26页
字符串与二维数组.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《字符串与二维数组.ppt》由会员分享,可在线阅读,更多相关《字符串与二维数组.ppt(26页珍藏版)》请在三一办公上搜索。

1、5.2 字符串与二维数组,字符数组与字符串字符串的处理二维数组,字符串的声明,C语言不支持字符串数据类型,但是允许使用字符数组来表示字符串。在C语言中,字符串变量就是一个字符数组字符串变量声明的一般形式为:char 变量名数组大小;例如:char name30;,字符串的初始化,C语言允许字符数组两种方式的初始化:char name9=“Liang Ye”;char name9=L,i,a,n,g,Y,e,0;当把字符串赋值给字符数组时,会自动在字符串末尾加上空字符0(gets函数)数组大小必须大于或等于字符串长度+1可以大于:char name20=“Liang Ye”;不可以小于:char

2、 name5=“Liang Ye”;注:当以元素列举的方式初始化字符数组时,必须显式地加上空字符(getchar函数),字符串的初始化,不可以先声明后初始化错误1:char name9;name9=“Liang Ye”;/*不能把初始化从声明中分隔开来*/错误2:char name19=“Liang Ye”;char name29;name2=name1;/*字符串之间不能赋值操作*/错误3:char name19=“Liang Ye”;char name29=name1;/*不能直接将一个字符串赋给另一个字符串*/,字符串的输入输出,scanf函数在工作过程中,一旦遇到空格、制表符、回车符、

3、换行符等,就停止读入工作。如:Liang Yen,仅读取Liang就停止了。在使用scanf函数读取字符串时,请注意格式的不同:scanf(”%d”,scanf在读取”Liang-Yen”时,数组name的大小应该保证大于或等于9,以便保存0。,字符串的输入输出,例:使用scanf函数读取一系列字符串main()char word140,word240,word340,word440;scanf(“%s%s”,word1,word2);scanf(“%s”,word3);scanf(“%s”,word4);printf(“%sn”,word1);printf(“%sn”,word2);prin

4、tf(“%sn”,word3);printf(“%sn”,word4);,getchar函数的使用,getchar函数用于从键盘读取一个字符,不受空格的影响,可以读取一段文本。格式:getchar();注:getchar函数没有参数例:main()char word100,character;int c=0;docharacter=getchar();wordc=character;c+;while(character!=n);wordc=0;printf(%sn,word);,gets函数的使用,gets函数可以读取以回车换行符结尾的一行文本格式:gets(str);gets函数不会受空格的

5、影响,最后的回车换行符不保存,但是会自动在末尾加上一个0。例:main()char word100;gets(word);printf(%sn,word);,屏幕输出函数,printf函数用于在屏幕上输出一个字符串,用来显示以0结尾的字符数组格式:printf(“%s”,name);putchar函数用于在屏幕上输出一个字符格式:putchar(ch);等价于:printf(“%c”,ch);puts函数用于在屏幕上输出一个字符串,并将光标移至下一行行首格式:puts(name);等价于:printf(“%sn”,name);,字符的算术运算,C语言允许像数字一样对字符进行操作。当某个字符常量

6、和字符变量在表达式中出现时,系统自动地将其转换为整数值。C函数库中有一个函数atoi(),可以将数字字符串转换为相应的整数值。,字符的算术运算,字符串的复制,C语言没有直接作用于字符串上的运算符,因此char name9;name=“Liang Ye”;是错误的。不能直接将一个字符串赋给另一个字符串 char name19=“Liang Ye”;char name29=name1也是错误的那么,如果想对字符串复制,怎么办?,字符串的组合,在C语言中,字符串不能通过算术加结合到一起,string3=string2+string1;string2=string1+“Hello”;都是不合法的。在C

7、语言中,字符串不能直接进行比较,if(string2=string1)if(string1=“Hello”)都是不合法的。,字符串处理函数,C语言函数库支持大量的字符串处理函数,来完成字符串操作,包含在头文件中以下是一些最常用的字符串处理函数,二维数组的定义 二维数组:数组中每个元素带有两个下标。定义形式为:类型说明符 数组名第一维大小 第二维大小;逻辑上,可把二维数组看成是一个矩阵,第一维大小表示矩阵有几行,第二维大小表示矩阵有几列。,二维数组,引用二维数组元素时必须带有两个下标,形式如下:数组名下标1下标2二维数组在内存中占据一系列连续的存储单元,数组元素按行顺序存放,先放行下标是0的元素

8、,再放行下标是1的元素,.,二维数组初始化:二维数组定义时也可以用花括号对全部或前面一部分数组元素进行初始化。数组的初始化是逐行进行的例:int a23=1,2,3,4,5,6;int a23=1,2,3,4,5,6;如果数组的所有元素都显示地进行了初始化,那么就不必指定第一个维数的大小,但第二维大小不能省略。例:int a3=1,2,3,4,5,6;,二维数组,二维数组,判断对错:int a23=1,2;nt a34=1,2,3,4,5,6;int a34=1,2,3;int a23=1,2,3,4,5,6,7,8;int a3=1,2,3,4,5,6;初值个数不能多于数组元素的个数给数组的

9、部分元素赋初值时,数组的长度声明不能省略,多维数组,C语言支持多维数组,其一般形式为:类型说明符 数组名第一维大小 第二维大小第n维大小一维数组表示一个一维的空间二维数组表示一个二维的空间三维数组表示一个三维的空间n维数组表示一个n维的空间因此,一般很少用到超过3维的数组。举例:int survey 3512float table 5 4 5 3,数组的应用,二维数组程序举例将一个二维数组行和列元素互换,存到另一个二维数组中。例如:A=1 2 3 B=1 4 4 5 6 2 5 3 6,数组的应用,main()int a23=1,2,3,4,5,6;int b32,i,j;printf(“Ar

10、ray a:n);for(i=0;i=1;i+)for(j=0;j=2;j+)printf(%5d,aij);bji=aij;printf(n);,printf(“Array b:n);for(i=0;i=2;i+)for(j=0;j=1;j+)printf(%5d,bij);printf(n);,数组的应用,数组的应用,有一个34的矩阵,要求编程序求出其中值最大的那个元素的值,以及其所在的行号和列号。,数组的应用,main()int i,max,number;int a12=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a0;for(i=0;imax)max=ai;number=i;printf(max=%d,row=%d,colum=%dn,max,number/4,number%4);,解法二:定义为二维数组,main()int i,j,row,colum,max;int a34=1,2,3,4,9,8,7,6,-10,10,-5,2;max=a00;for(i=0;imax)max=aij;row=i;colum=j;printf(max=%d,row=%d,colum=%dn,max,row,colum);,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号