All pastes #929244 Raw Edit

Dzek

public c v1 · immutable
·published 2008-03-05 17:11 UTC
rendered paste body
#include <stdio.h>#include <string.h>#include <stdlib.h>void PrintLine(char *tab, int k1, int k2, int sc, int *ip, char par);int main(int argc, char *argv[]){//Kolumna 1 i 2 do ktorych wyrownujemyint k1,k2;char *tab;k1 = atoi(argv[1]);k2 = atoi(argv[2]);int cc = k2-k1+1;int i = 0;int sc;char c;tab = malloc(cc+4);do{         sc = 0;         for(; i < cc; i++)         {                 c = getc(stdin);                 if(c == ' ')                         sc++;                 if(c == -1)                         break;                 tab[i] = c;         }         PrintLine(tab,k1,k2,sc,&i,i % 2);//         i = 0;                          }while(!feof(stdin));free(tab);return 0;}void PrintLine(char *tab, int k1, int k2, int sc, int *ip,char par){//printf("TAB: %s||\n",tab);int cc = k2-k1+1;int i,j,k,sbw,sbw2,sbw3;int spaces_written = 0;char *lasts = strrchr(tab,' ');int spaces_total = cc-((lasts-tab)-sc);if(sc > 0){ sbw         = spaces_total/sc;         sbw3 = sbw2 = spaces_total%sc;}else sbw = sbw2 = sbw3 = 0;// printf("%d",*ip);// printf("l-t: %d sc: %d sbw: %d sbw2: %d cc: %d spaces_total: %d\n",lasts-tab,sc,sbw,sbw2,cc,spaces_total);for(i = 0; i < k1; i++)         putc(' ',stdout);for(i = 0, k = 0; k < *ip; i++){         if(tab[i] != ' ')         {                 putc(tab[i],stdout);                 k++;         }         else         {                 for(j = 0; j < sbw; j++,k++)                         putc(' ',stdout);                 if(par)                 {                         if(sbw2 > 0)                         {                                 putc(' ',stdout);                                 sbw2--;                                 k++;                         }                 }                 else                 {                         if(sbw2 > 0 && spaces_written >= sc-sbw3)                         {                                 putc(' ',stdout);                                 sbw2--;                                 k++;                         }                 }                 spaces_written++;         }}putc('\n',stdout);//skopiowanie pozostalosciwhile(tab[i] == ' ')         i++;memcpy(tab,&tab[i],cc-i);*ip = cc-i;}