《字符串与二维数组》ppt课件_第1页
《字符串与二维数组》ppt课件_第2页
《字符串与二维数组》ppt课件_第3页
《字符串与二维数组》ppt课件_第4页
《字符串与二维数组》ppt课件_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、5.2 5.2 字符串与二维数组字符串与二维数组 l字符数组与字符串 l字符串的处置 l二维数组 字符串的声明 l C言语不支持字符串数据类型,但是允许运用字符数 组来表示字符串。 l 在C言语中,字符串变量就是一个字符数组 l 字符串变量声明的普通方式为: l char 变量名数组大小; l 例如: lchar name30; 字符串的初始化 l C言语允许字符数组两种方式的初始化: lchar name9 = “Liang Ye; lchar name9 = L,i,a,n,g, ,Y,e,0; l 当把字符串赋值给字符数组时,会自动在字符串末尾加上空 字符0 gets函数 l 数组大小必

2、需大于或等于字符串长度+1 l 可以大于: l char name20 = “Liang Ye; l 不可以小于: l char name5 = “Liang Ye; l 注:当以元素列举的方式初始化字符数组时,必需显式地加 上空字符getchar函数 字符串的初始化 l 不可以先声明后初始化 l 错误1: lchar name9; lname9 = “Liang Ye;/*不能把初始化从声明中 分隔开来*/ l 错误2: lchar name19 = “Liang Ye; lchar name29; lname2 = name1; ;/*字符串之间不能赋值操作*/ l 错误3: lchar

3、name19 = “Liang Ye; lchar name29 = name1;/*不能直接将一个字符 串赋给另一个字符串*/ 字符串的输入输出 l scanf函数在任务过程中,一旦遇到空格、制表符、 回车符、换行符等,就停顿读入任务。 l 如:Liang Yen,仅读取Liang就停顿了。 l 在运用scanf函数读取字符串时,请留意格式的不同: lscanf (%d, lscanf (%s, name); l scanf在读取Liang-Yen时,数组name的大小应 该保证大于或等于9,以便保管0。 字符串的输入输出 l 例:运用scanf函数读取一系列字符串 l main() l l

4、 char word140, word240, word340, word440; l scanf (“%s %s, word1, word2); l scanf (“%s, word3); l scanf (“%s, word4); l printf (“%sn, word1); l printf (“%sn, word2); l printf (“%sn, word3); l printf (“%sn, word4); l getchar函数的运用 l getchar函数用于从键盘读取一个字符,不受空格的影响,可 以读取一段文本。 l 格式:getchar(); 注:getchar函数没有

5、参数 l 例: lmain() lchar word100, character; lint c = 0; ldo lcharacter = getchar(); lwordc = character; lc+; lwhile(character != n); lwordc = 0; lprintf(%sn, word); l gets函数的运用 l gets函数可以读取以回车换行符结尾的一行文本 l 格式:gets (str); l gets函数不会受空格的影响,最后的回车换行符不 保管,但是会自动在末尾加上一个0。 l 例: lmain() l lchar word100; lgets (

6、word); lprintf(%sn, word); l 屏幕输出函数 l printf函数用于在屏幕上输出一个字符串,用来显示 以0结尾的字符数组 l格式: printf (“%s, name); l putchar函数用于在屏幕上输出一个字符 l格式 : putchar (ch); l等价于: printf (“%c, ch); l puts函数用于在屏幕上输出一个字符串,并将光标 移至下一行行首 l格式 : puts (name); l等价于: printf (“%sn, name); 字符的算术运算 l C言语允许像数字一样对字符进展操作。当某个字符常量和 字符变量在表达式中出现时,系

7、统自动地将其转换为整数值。 l C函数库中有一个函数atoi(),可以将数字字符串转换为相应 的整数值。 字符的算术运算 字符串的复制 l C言语没有直接作用于字符串上的运算符,因此言语没有直接作用于字符串上的运算符,因此 lchar name9; lname = “Liang Ye; l是错误的。是错误的。 l 不能直接将一个字符串赋给另一个字符串不能直接将一个字符串赋给另一个字符串 l char name19 = “Liang Ye; lchar name29 = name1 l 也是错误的也是错误的 l 那么,假设想对字符串复制,怎样办?那么,假设想对字符串复制,怎样办? 字符串的组合

8、l 在C言语中,字符串不能经过算术加结合到一同, lstring3 = string2 + string1; lstring2 = string1 + “Hello; l都是不合法的。 l 在C言语中,字符串不能直接进展比较, lif (string2 = string1) lif (string1 = “Hello) l都是不合法的。 字符串处置函数 l C言语函数库支持大量的字符串处置函数,来完成字 符串操作,包含在头文件中 l 以下是一些最常用的字符串处置函数 二维数组的定义 二维数组:数组中每个元素带有两个下标。 定义方式为: 类型阐明符 数组名第一维大小 第二维大小; 逻辑上,可把二

9、维数组看成是一个矩阵,第一 维大小表示矩阵有几行,第二维大小表示矩 阵有几列。 二维数组 a00a01a02 a10a11a12 a20a21a22 l 援用二维数组元素时必需带有两个下标,方式如下: l 数组名下标1下标2 l 二维数组在内存中占据一系列延续的存储单元,数 组元素按行顺序存放,先放行下标是0的元素,再放 行下标是1的元素,. a00a01 a02 a10 a11 a12 a20 a21 a22 l 二维数组初始化:二维数组定义时也可以用花括号对全部 或前面一部分数组元素进展初始化。 l 数组的初始化是逐行进展的 l 例: lint a23=1,2,3,4,5,6; lint

10、a23=1,2,3, 4,5,6 ; l 假设数组的一切元素都显示地进展了初始化,那么就不用 指定第一个维数的大小,但第二维大小不能省略。 l 例: lint a3= 1,2,3,4,5,6; 二维数组 二维数组 l 判别对错: lint a23=1,2; lnt a34=1,2, 3, 4,5,6; lint a34=1,2,3 ; lint a23=1,2,3,4,5,6,7,8; lint a3= 1,2,3,4,5,6; l 初值个数不能多于数组元素的个数 l 给数组的部分元素赋初值时,数组的长度声明不能 省略 多维数组 l C言语支持多维数组,其普通方式为: l 类型阐明符 数组名第

11、一维大小 第二维大 小第n维大小 l 一维数组表示一个一维的空间 l 二维数组表示一个二维的空间 l 三维数组表示一个三维的空间 l n维数组表示一个n维的空间 l 因此,普通很少用到超越3维的数组。 l 举例: l int survey 3512 l float table 5 4 5 3 数组的运用 l 二维数组程序举例 l 将一个二维数组行和列元素互换,存到另一个二维 数组中。 l 例如: l A=1 2 3 B=1 4 l 4 5 6 2 5 l 3 6 数组的运用 main() int a23 = 1,2,3, 4,5,6; int b32, i, j; printf(“Array

12、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); 数组的运用 数组的运用 l 有一个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,nu mber%4); 解法二:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论