按列循环,逐个加入到字符数组中就可以了
void main()
{
char a[100][100];
int M,N,i,j,k=0;
scanf("%d %d",&M,&N);
for(i=0;i<M;i++)
for(j=0;j<N;j++)
scanf("%c",&a[i][j]);
char *p = new char[M*N+1];
p[M*N] = 0;
for(i=0;i<N;i++)
for(j=0;j<M;j++)
p[k++] = a[j][i];
printf("%s",p);
}
代码如下,如有帮助,请采纳一下,谢谢。
#include <stdio.h>
#include <stdlib.h>
int main()
{
int M,N,i,j;
char* buf;
printf("输入M和N的值:");
scanf("%d %d",&M,&N);
buf = (char*)malloc(M*N+1);
for (i = 0; i < M;i++)
{
for(j = 0;j < N;j++)
buf[i*N+j] = getchar();
getchar();
}
buf[M*N] = '\0';
for (i = 0; i < N; i++)
{
for(j = 0; j < M;j++)
printf("%c",buf[j*N+i]);
}
printf("\n");
return 0;
}
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632