#include #include #include #define MAXLINE 100 #define MAXWIDTH 50 int plen,cnum,width,cspace; char table[MAXLINE][MAXWIDTH]; void cleartable(void); void writetable(void); void copytable(int line, int column, char buf[MAXWIDTH]); void strcpy2(int start, int haba, char buf[MAXWIDTH], char buf2[MAXWIDTH]); int main(void) { char buf[MAXWIDTH]; char buf2[MAXWIDTH]; int i; int line, column, len; while(1){ gets(buf); plen=atoi(buf); if(plen==0) break; gets(buf); cnum=atoi(buf); gets(buf); width=atoi(buf); gets(buf); cspace=atoi(buf); // printf("%d %d %d %d\n", plen,cnum,width,cspace); cleartable(); line=0; column=0; while(1){ gets(buf); len=strlen(buf); // printf("%8s len=%d ",buf, len); if(buf[0]=='?'){ // printf("%c\n", buf[0]); // writetable(); break; } if(len<=width){ // printf("len<=width "); copytable(line,column,buf); // tableにbufを書き込む line++; if(line>plen){ line=0; column++; if(column==cnum){ // writetable(); // table全部出力 cleartable(); line=0; column=0; } } }else{ // printf("len>width "); for(i=0; iplen){ if(column==0){ column=1; line=0; }else{ // writetable(); // table全部出力 cleartable(); line=0; column=0; } } } if(len%width>0){ // コピーの残ったものがあったら // puts("amari"); strcpy(buf2,".................................................."); strcpy2((len/width)*width,len%width,buf,buf2); // i文字目からwidth文字分buf2にコピー copytable(line,column,buf2); // tableにbuf2を書き込む line++; if(line>plen){ if(column==0){ column=1; line=0; }else{ // writetable(); // table全部出力 cleartable(); line=0; column=0; } } } } // printf("line=%d column=%d\n", line, column); writetable(); } // writetable(); } return 0; } void cleartable(void) { int x,y; for(y=0; y