#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
int row,i=0,j,col;
char a[1000],*p;
scanf("%d",&row);
getchar();
gets(a);
printf("%d\n",strlen(a));//未改变前的字符长度
while(strlen(a)%row!=0){
a[strlen(a)+1]=a[strlen(a)];
a[strlen(a)]=' ';
}//进行转换,将字符串补充为合适的字符串,恰好可以被所需列数整除。
puts(a);
printf("%d\n",strlen(a));//补充之后的长度
col=strlen(a)/row;
for(i=0;i<row;i++){
for(j=0;j<col;j++)
putchar(a[i*col+j]);
putchar('\n');
}//将处理后的打印出来对比
p=(char*)malloc(sizeof(char)*strlen(a));//申请新的内存进行分开储存
for(i=0;i<col;i++)
for(j=0;j<row;j++)
p[j*col+i]=a[(strlen(a)-row*(i+1)+j)];//开始将字符串“格式化储存”
for(i=0;i<row;i++){
for(j=0;j<col;j++)
putchar(p[i*col+j]);
putchar('\n');//输出
}
return 0;
}
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)
输入样例:4 This is a test case输出样例:asa T st ih e tsi ce s
运行结果如图,思路清晰,看代码就懂,古风排版。