C语言基础第7章多维数组
7.2 二维数组及多维数组二维数组的定义定义方式: 数据类型 数组名[常量表达式][常量表达式];;二维数组理解;二维数组元素的引用形式: 数组名[下标][下标]二维数组元素的初始化分行初始化:;程序举例;例 求二维数组中最大元素值及其行列号;例 读入下表中值到数组,分别求各行、各列及表中所有数之和;7.3 字符数组和字符串字符数组定义 ; 例 char diamond[][5]={{'.', '.','*'},{'.','*','.','*'}, {'*', '.', '.', '.' ,'*'},{'.','*', '.','*'},{'.', '.','*'}};
;例 输出一个字符串;字符串字符串及其结束标志无字符串变量,用字符数组处理字符串字符串结束标志:‘\0’;字符串的输入输出逐个字符I/O: %c整个字符串I/O: %s;例 main( ) { char a[5]={‘H’,’e’,’l’,’l’,’o’}; printf(“%s”,a); };main(){ char a[]={'h','e','l','\0','l','o','\0'}; printf("%s",a);};main(){ int i; char a[5]; scanf("%s",a); for(i=0;i<5;i++) printf("%d,",a[i]);};例 字符串输入举例;例 若准备将字符串“This is a string.”记录下来,错误的输入语句为:(A)scanf(“%20s”,s);(B)for(k=0;k<17;k++) s[k]=getchar();(C)while((c=getchar())!=‘\n’) s[k++]=c;;常用的字符串处理函数包含在头文件 string.h;字符串连接函数strcat格式:strcat(字符数组1,字符数组2)功能:把字符数组2连到字符数组1后面返值:返回字符数组1的首地址说明:?字符数组1必须足够大 ?连接前,两串均以‘\0’结束;连接后,串1的‘\0’取消, 新串最后加‘\0’;例 strcpy与strcat举例;字符串比较函数strcmp格式:strcmp(字符串1,字符串2)功能:比较两个字符串比较规则:对两串从左向右逐个字符比较(ASCII码), 直到遇到不同字符或‘\0’为止返值:返回int型整数,a. 若字符串1< 字符串2, 返回负整数 b. 若字符串1> 字符串2, 返回正整数 c. 若字符串1== 字符串2, 返回零说明:字符串比较不能用“==”,必须用strcmp;#include #include main(){ char str1[] = ”Hello!", str2[] = ”How are you?”,str[20]; int len1,len2,len3; len1=strlen(str1); len2=strlen(str2); if(strcmp(str1, str2)>0) { strcpy(str,str1); strcat(str,str2); } else if (strcmp(str1, str2)<0) { strcpy(str,str2); strcat(str,str1); } else strcpy(str,str1); len3=strlen(str); puts(str); printf(”Len1=%d,Len2=%d,Len3=%d\n”,len1,len2,len3);};应用举例;当前字符=空格;例 有三个字符串,找出其中最大者;例 有十个学生的成绩,求平均分;例 比较 int a[2][3]={{5,6},{7,8}}; 与 int a[2][3]={5,6,7,8};