直接上程序
#include <stdio.h>
#include <string.h>
int main()
{
char s[1024];
int length,i,j,n,a,b;//n为余数 a为第一个下标 b成正方形输出的行高
printf("请输入要输入的字符串");
fgets(s,1024,stdin);//解决了空格被视为'\0'的问题 类似于scanf
length = strlen(s);
for(b=0;b*b<length;b++)//求正方形的边b
{
;
}
char (*p)[b]=(char(*)[b])&s;//数组的分段操作
n = length%b;
a = length/b;
for(i=0;i<a;i++)
{
for(j=0;j<b;j++)
{
printf("%c ",p[i][j]);
}
putchar('\n');
}
if(n==0)//余数为0 恰好为正方形输出
{
;
}
else//余数非0以补充后面的输入
{
for(i=0;i<n;i++)//数组以0开始
{
printf("%c ",p[a][i]);
}
putchar('\n');
}
return 0;
}