c语言多维、字符数组

c语言多维、字符数组

ID:36291208

大小:843.81 KB

页数:20页

时间:2019-05-08

上传者:U-145848
c语言多维、字符数组_第1页
c语言多维、字符数组_第2页
c语言多维、字符数组_第3页
c语言多维、字符数组_第4页
c语言多维、字符数组_第5页
资源描述:

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

第五章数组5.2多维数组5.3字符数组 多维数组引例:一页纸写着两个字符,如何存放这两个字符?一页纸写着三行字符,每行两个字符,如何存放这些字符?有一本书,共四页,每页纸写着三行字符,每行两个字符,如何存放这些字符?charch[2];charch[3][2];charch[4][3][2]; 多维数组(定义)inta[2];inta[3][2];inta[4][3][2];[存储类别]类型名数组名[常量表达式1][常量表达式2]……先定义,后使用多维数组定义的一般形式: 二维数组(引用)设inta[3][2];,则这个二维数组的6个元素分别为:数组名[行下标][列下标](注:下标:整型常量、变量、或表达式)先定义,后使用二维数组元素引用的一般形式:a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1] inta[3][2];(3行2列,6个元素)a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]a[0][0]a[0][1]a[1][0]a[1][1]a[2][0]a[2][1]二维数组的元素在内存的存储顺序是:按行存放如何表示数组a的地址?&a[0][0]或者a 二维数组(引用)注:数组元素的使用方法与同类型的变量相同引用:数组名[行下标][列下标](下标:整型常量、变量、或表达式)例:设inta[3][2];,则给数组元素a[0][0]赋值1如何实现,输出数组元素a[0][0]的值如何实现呢?给每个数组元素输入值如何实现,输出所有数组元素的值如何实现呢?按矩阵格式输出所有数组元素的值如何实现? 二维数组的初始化inta[3][3]={1,2,3,4,5,6,7,8,9};inta[3][3]={{1,2,3},{4,5,6},{7,8,9}};inta[][3]={1,2,3,4,5,6,7,8,9};inta[][3]={{1,2,3},{4,5},{9}};inta[][3]={{1,2,3},{4,5},{6}};能写成inta[3][]={{1,2,3},{4,5},{6}};吗?这个数组中共包含几个元素?a[1][2]的值是多少? 例:定义一个3*2的二维数组a,数组元素的值由下式给出,按矩阵的形式输出a。a[i][j]=i+j(0<=i<=2,0<=j<=1)#includevoidmain(){inta[3][2],inti,j;for(i=0;i<3;i++)for(j=0;j<2;j++)a[i][j]=i+j;for(i=0;i<3;i++){for(j=0;j<2;j++)printf(“%4d”,a[i][j]);printf(“ ”);}} 例:计算矩阵A2×3的转置矩阵AT#includemain(){inta[2][3]={{1,3,5},{2,4,6}};inti,j,b[3][2];for(i=0;i<2;i++){for(j=0;j<3;j++){printf("%5d",a[i][j]);b[j][i]=a[i][j];}printf(" ");}for(i=0;i<3;i++){for(j=0;j<2;j++)printf("%5d",b[i][j]);printf(" ");}}a[i][j]的值是b[j][i]的值 字符数组(数组的应用)C中不使用字符串变量,而使用字符数组来处理字符串。定义:char字符数组名[常量表达式];charstr[3];引用:字符数组名[下标]str[0],str[1],str[2]#includemain(){charc[12];inti;c[0]='H';c[1]='o';c[2]='w';c[3]='';c[4]='a';c[5]='r';c[6]='e';c[7]='';c[8]='y';c[9]='o';c[10]='u';c[11]='?';for(i=0;i<12;i++)printf("%c",c[i]);printf(" ");}printf(“%s”,c); 字符串(数组的应用)初始化:charstr[5]={'h','e','l','l','o'};charstr[6]={'h','e','l','l','o'};charstr[]={'h','e','l','l','o',''};charstr[]={"hello"};charstr[]="hello";charcolor[5][7]={“red”,”yellow”,”green”,”black”,”white”};charcolor[][7]={“red”,”yellow”,”green”,”black”,”white”};见书122页 字符数组的输入charstr[13];1、用格式符“%c”逐个输入字符for(i=0;i<13;i++)scanf("%c",&str[i]);2、用格式符“%s”一次输入整个字符串scanf(“%s”,str);/*输入"hello"*/scanf(“%[a-zA-Z]s”,str);/*输入"Ab12"*/scanf(“%[^1-3]s”,str);/*输入"Ab↙c12"*/说明:scanf使用空格或回车作一个数据输入的结束标志,所以不能输入带空格的字符串。使用gets函数可(只以回车作结束标志)输入带空格的字符串。 字符串输入函数charstr[13];作用:从键盘输入一个字符串并把该字符串存入“字符数组”中,它遇到换行符表示字符串输入结束。换行符不进入字符串,它们被转换为空字符作为字符串的结束标志。gets(str);格式:gets(字符数组名) 字符数组的输出1、用格式符“%c”逐个输出字符printf("%c,%c",str[0],str[1]);2、用格式符“%s”一次输出字符串charstr[13]="Howareyou?";printf("%s",str);/*遇到“”输出结束*/ 字符串输出函数charstr[13];作用:将“字符串”输出到终端。输出时,字符串结束标志‘’空字符被转换为换行符,即输出完字符串后换行。例如:gets(str);puts(str);格式:puts(字符数组名) 字符串拷贝函数—strcpycharstr1[10],str2[]={"hello"};strcpy(str1,str2);strcpy(str1,"hello");说明:1.‘’一起被拷贝2.“字符数组”的长度要>=“字符串”中的实际字符串长度加1。3.“字符数组”必须是数组名形式(如str1)。“字符串”可以是一个字符串常量,也可以是已存放字符串的字符数组。不能将一个字符串常量或字符数组直接赋给一个字符数组,只能使用字符串拷贝函数。str1=str2;str1="hello"格式:strcpy(字符数组名,字符串) 拷贝字符串前n个字符的函数chara[10]="abc",b[5]="xyz";strncpy(a,b,2);注意:只拷贝字符,不拷贝''字符拷贝到目的字符数组格式:strncpy(字符数组名,字符串,n) 字符串连接函数—strcatchara[10]="abc",b[5]="xy";strcat(a,b);作用:取消“字符数组”中的字符串结束标志‘’,然后把“字符串”连接到“字符数组”中的字符串后面,并在最后加一个‘’字符,结果放到“字符数组”中。格式:strcat(字符数组名,字符串) 字符串比较函数—strcmpstrcmp("abc","ab");作用:比较“字符串1”和“字符串2”的大小(从第一个字符开始比较,碰到第一个不相等的字符,看谁的ASCII码大)。(1)如果“字符串1”=“字符串2”,函数值为0;(2)如果“字符串1”>“字符串2”,函数值为正整数;(3)如果“字符串1”<“字符串2”,函数值为负整数。格式:strcmp(字符串1,字符串2) 测字符串长度函数—strlencharstr[15]=“hello”;printf(“%d”,strlen(str));作用:测数组中字符串长度注意:所测的长度不包含字符串结束符“”格式:strlen(字符数组名)

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

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

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