1 /*二维字符数组转换(卜胜贤) 2 题目描述: 3 编写函数fun, 函数的功能是: 将M行N列的二维数组中的字符数据, 按列的 4 顺序依次放到一个字符串中。 5 例如, 二维数组中的数据为: 6 W W W W 7 S S S S 8 H H H H 9 则字符串中的内容应是: WSHWSHWSH。 10 (知识点:数组、指针) 11 输入描述: 12 输入为一个3行4列二维字符数组数据 13 输出描述描述: 14 输出为一个长度为12的字符数组; 15 #include<stdio.h> 16 void main() 17 { 18 char a[3][4],s[12]; 19 char (*p1)[4],*p2; 20 int i; 21 void fun(char (*p1)[4],char *p2); 22 for(i=0;i<4;i++) 23 { 24 scanf("%c",&a[0][i]); 25 getchar(); 26 } 27 for(i=0;i<4;i++) 28 { 29 scanf("%c",&a[1][i]); 30 getchar(); 31 } 32 for(i=0;i<4;i++) 33 { 34 scanf("%c",&a[2][i]); 35 getchar(); 36 } 37 p1=a; 38 p2=s; 39 fun(p1,p2); 40 puts(s); 41 } 42 void fun(char (*p1)[4],char *p2) 43 { 44 int i,j; 45 for(i=0;i<4;i++) 46 for(j=0;j<3;j++) 47 { 48 *p2=*(*(p1+j)+i); 49 p2++;} 50 *p2=\'\0\'; 51 52 }*/ 53 #include <stdio.h> 54 void main() 55 { 56 char a[3][8],b[24]; 57 int i,j,k=0,t=0; 58 for(i=0;i<3;++i) 59 for(j=0;j<8;++j) 60 scanf("%c",&a[i][j]); 61 62 while(k<24) 63 { 64 b[k]=a[k%3][t]; 65 k++; 66 if(k%3==0) 67 t++; 68 69 } 70 for(i=0;i<24;++i) 71 { 72 if(b[i]!=\' \') 73 printf("%c",b[i]); 74 if(b[i]==\'\n\') 75 break; 76 } 77 }
相关文章: