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 }
![](//images0.cnblogs.com/blog/477380/201301/08015743-b645f412da66405b94907fa4df0ce1f8.png)