InnadrilCastle

Untitled

Jan 14th, 2022
1,118
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*****************************************************************************************************************
  2.  *                                                                                                               *
  3.  * Write a program to "fold" long input lines into two or more shorter lines after the last non-blank character  *
  4.  * that occurs before the n-th column of input. Make sure your program does something intelligent with very long *
  5.  * lines, and if there are no blanks or tabs before the specified column.                                        *
  6.  *                                                                                                               *
  7.  *****************************************************************************************************************/
  8.  
  9. #include <stdio.h>
  10.  
  11. #define LONGLINE 80                                     /* 80+ znakov je dlhy riadok, softlimit */
  12. #define MAXLINE 800                                     /* 800+ znakov je prilis dlhy riadok, hardlimit */
  13.  
  14. int main(void) {
  15.         int c, i;                                       /* miesto pre nacitany znak a pocet znakov v riadku */
  16.         i = 0;                                          /* na zaciatku sme na nultej pozicii riadku */
  17.  
  18.         while ((c = getchar()) != EOF) {                /* nacitavame znaky az do EOF */
  19.                 if (i >= LONGLINE)                      /* sme za softlimit dlzky riadku? */
  20.                         if (c == '\t' || c == ' ')      /* ano sme, tak ak pride medzera alebo TAB, nahradime ich '\n' */
  21.                                 c = '\n';
  22.                 else if (i >= MAXLINE) {                /* sme za hardlimit riadku? */
  23.                         putchar('\n');                  /* ano sme, tak natvrdo zaradime '\n' */
  24.                         i = 0;                          /* nastavime poziciu na riadku na nulu */
  25.                 }
  26.                 putchar(c);                             /* vytlacime bud povodny znak, alebo nahradeny '\n' za '\t' alebo ' ' po dosiahnuti softlimitu */
  27.  
  28.                 if (c != '\n')                          /* posunieme sa v riadku iba vtedy, ak nie sme '\n' */
  29.                         ++i;
  30.                 else                                    /* sme '\n', tak vynulujeme poziciu na riadku */
  31.                         i = 0;
  32.         }
  33.  
  34.         return 0;                                       /* slusne sa rozlucime */
  35. }
RAW Paste Data