Advertisement
Guest User

Untitled

a guest
May 3rd, 2022
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.99 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. char* ladny_tekst()
  6. {
  7.     char znak;
  8.     int ilosc_znakow = 0;
  9.     int i;
  10.     FILE* plik = fopen("text2.txt", "r");
  11.    
  12.     if (plik == NULL)
  13.     {
  14.         fprintf(stderr, "Nie da sie otworzyc pliku.\n\n");
  15.         exit(1);
  16.     }
  17.    
  18.     while ((znak = getc(plik)) != EOF)
  19.         ilosc_znakow++;
  20.  
  21.  
  22.     rewind(plik);
  23.  
  24.     char* pom = (char*)malloc((ilosc_znakow) * sizeof(char)+1);
  25.        
  26.     i = 0;
  27.     while ((znak = getc(plik)) != EOF)
  28.     {
  29.         pom[i] = znak;
  30.         i++;
  31.     }
  32.     pom[i] = 0;
  33.  
  34.     char* text = (char*)malloc((ilosc_znakow) * sizeof(char));
  35.            
  36.     i = 0;
  37.     int j = 0;
  38.     while(pom[i] != NULL)
  39.     {
  40.         if(pom[i] == '\n' && pom[i+1] == ' ')
  41.         {
  42.             i++;
  43.             continue;
  44.         }
  45.         else if (pom[i] == '\n' && pom[i+1] != ' ')
  46.         {
  47.             text[j] = ' ';
  48.             j++;
  49.             i++;
  50.         }
  51.         else if(pom[i] != ' ')
  52.         {
  53.             text[j] = pom[i];
  54.             i++;
  55.             j++;
  56.         }
  57.         else if(pom[i] == ' ' && pom[i+1] != ' ')
  58.         {
  59.             text[j] = pom[i];
  60.             i++;
  61.             j++;
  62.         }
  63.         else
  64.             i++;
  65.     }
  66.     text[j] = 0;
  67.     fclose(plik);
  68.     return text;
  69. }
  70.  
  71. int* dlugosci_slow(int szerokosc, char* tab)
  72. {
  73.     int ilosc_slow = 0 ;
  74.     int i = 0;
  75.     int max = 0;
  76.     while(tab[i] != NULL)
  77.     {
  78.         if(tab[i] == ' ')
  79.             ilosc_slow++;
  80.         i++;
  81.     }
  82.    
  83.     int *tab_pom = (int*)malloc(ilosc_slow * sizeof(int));
  84.  
  85.     i = 0;
  86.     int j = 0;
  87.     while(tab[i] != NULL)
  88.     {
  89.         if(tab[i] != ' ')
  90.             max++;
  91.         else
  92.         {
  93.             tab_pom[j] = max;
  94.             j++;
  95.             max = 0;
  96.         }
  97.         i++;
  98.     }
  99.     max = 0;
  100.     for(i = 0; i < ilosc_slow; i++)
  101.         if(tab_pom[i] > max)
  102.             max = tab_pom[i];
  103.    
  104.     if(max > szerokosc)
  105.     {
  106.         printf("najdluzsze slowo ma %d znakow\n", max);
  107.         printf("wiec podana szerokosc nie zmiesci najdluzszego slowa");
  108.         exit(2);
  109.     }  
  110.     return tab_pom;
  111. }
  112.  
  113. void wyrownanie_do_prawej(char* text, int* dlugosci_wyrazow, int szerokosc)
  114. {
  115.     int i = 0;
  116.  
  117.     printf("%s\n\n\n", text);
  118.    
  119.     for(i = 1; i <= szerokosc; i++)
  120.     {
  121.         printf("%d",i % 10);
  122.     }
  123.     printf("\n");
  124.    
  125.     i = 0;
  126.     int j = 0;
  127.     int z = 0;
  128.     int c = 0;
  129.     float ilosc_spacji = 0;
  130.     int text_w_linijce = 0;
  131.     int ilosc_wyrazow = 0;
  132.     while(text_w_linijce <= szerokosc)
  133.     {
  134.         if(text[j] == NULL)
  135.             break;
  136.         text_w_linijce += dlugosci_wyrazow[i];
  137.         i++;
  138.         ilosc_wyrazow++;
  139.    
  140.         if(text_w_linijce >= szerokosc)
  141.         {
  142.            
  143.             while(text_w_linijce > szerokosc)
  144.             {
  145.                 i--;
  146.                 ilosc_wyrazow--;
  147.                 text_w_linijce -= dlugosci_wyrazow[i];
  148.             }
  149.            
  150.             ilosc_spacji = (szerokosc-text_w_linijce)/ilosc_wyrazow;
  151.            
  152.             while(ilosc_spacji-int(ilosc_spacji) != 0)
  153.             {
  154.            
  155.                 i--;
  156.                 ilosc_wyrazow--;
  157.                 text_w_linijce -= dlugosci_wyrazow[i];
  158.                 ilosc_spacji = (szerokosc-text_w_linijce)/ilosc_wyrazow;
  159.             }
  160.             ilosc_wyrazow = 0;
  161.             text_w_linijce = 0;
  162.            
  163.             while(1)
  164.             {
  165.                
  166.                 if(text[j] != ' ')
  167.                 {
  168.                     printf("%c", text[j]);
  169.                     j++;
  170.                     z++;
  171.                 }
  172.                 if(z == szerokosc)
  173.                 {
  174.                     z = 0;
  175.                     printf("\n");
  176.                     break;
  177.                 }
  178.                 if(text[j] == ' ')
  179.                 {
  180.                     for(c = 0; c < ilosc_spacji; c++)
  181.                     {
  182.                         printf(" ");
  183.                         z++;
  184.                     }
  185.                     j++;
  186.                 }
  187.             }
  188.         }
  189.     }
  190.    
  191. }
  192.  
  193.  
  194.  
  195.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement