Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.77 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <ctype.h>
  4.  
  5. void kopia(FILE *wynik, FILE *zrodlo)
  6. {
  7.     char bufor[255];
  8.     while(fgets(bufor,sizeof(bufor),zrodlo)!=NULL)
  9.     {
  10.         fputs(bufor,wynik);
  11.     }
  12. }
  13.  
  14. void wstaw_wiersz(FILE *w, char *wiersz)
  15. {
  16.     fputs(wiersz,w);
  17. }
  18.  
  19. int policz_znaki(FILE *w)
  20. {
  21.     char znak;
  22.     int licznik = 0;
  23.  
  24.     while((znak = fgetc(w))!=EOF)
  25.     {
  26.         if(islower(znak))
  27.         {
  28.             ++licznik;
  29.         }
  30.     }
  31.     return licznik;
  32. }
  33.  
  34. int policz_cyfry(FILE *w)
  35. {
  36.     char znak;
  37.     int licznik = 0;
  38.     while((znak = fgetc(w))!=EOF)
  39.     {
  40.         if(isdigit(znak))
  41.         {
  42.             ++licznik;
  43.         }
  44.     }
  45.     return licznik;
  46. }
  47.  
  48. int policz_wiersze(FILE *w) // gdy mala litera
  49. {
  50.     char znak[255];
  51.     int licznik = 0;
  52.     int i = 0;
  53.  
  54.     while(fgets(znak,sizeof(znak),w)!=NULL)
  55.     {
  56.         if(znak[i]=islower(znak[i]))
  57.         {
  58.             ++licznik;
  59.         }
  60.     }
  61.     return licznik;
  62. }
  63.  
  64. int policz_same_wiersze(FILE *w)
  65. {
  66.     char znak[255];
  67.     int licznik = 0;
  68.     int i = 0;
  69.  
  70.     while(fgets(znak,sizeof(znak),w)!=NULL)
  71.     {
  72.         if(znak[i])
  73.         {
  74.             ++licznik;
  75.         }
  76.     }
  77.     return licznik;
  78. }
  79.  
  80. int policz_rozp_cyfra(FILE *w)
  81. {
  82.     char znak [255];
  83.     int licznik =0;
  84.     int i  =0;
  85.  
  86.     while(fgets(znak,sizeof(znak),w)!=NULL)
  87.     {
  88.         if(znak[i] = isdigit(znak[i]))
  89.         {
  90.             ++licznik;
  91.         }
  92.     }
  93.     return licznik;
  94. }
  95.  
  96.  
  97. int main()
  98. {
  99.     FILE *plik;
  100.     plik = fopen("plik.txt","a+");
  101.     kopia(stdout,plik);
  102.  
  103.     char wiersz[50];
  104.     printf("Wpisz cos: ");
  105.     fgets(wiersz,sizeof(wiersz),stdin);
  106.     wstaw_wiersz(plik,wiersz);
  107.  
  108.     rewind(plik);
  109.     printf("Liczba malych znakow: %d\n", policz_znaki(plik));
  110.  
  111.     rewind(plik);
  112.     printf("Liczba cyfr: %d \n", policz_cyfry(plik));
  113.  
  114.     rewind(plik);
  115.     printf("Liczba wierszy - male litery: %d \n", policz_wiersze(plik));
  116.  
  117.     rewind(plik);
  118.     printf("Liczba samych wierszy  %d \n", policz_same_wiersze(plik));
  119.  
  120.     rewind(plik);
  121.     printf("Liczba wierszy rozpoczynajacych sie cyfra  %d \n", policz_rozp_cyfra(plik));
  122.  
  123.  
  124.     //ile liter od uzytkownika
  125.     plik = fopen("plik.txt","r");
  126.     printf ("\n");
  127.     int licznik=0;
  128.  
  129.     char litera;
  130.     printf("Podaj litere ktora chcesz zliczyc: ");
  131.     scanf("%s", &litera);
  132.  
  133.     while(fgets(wiersz, sizeof(wiersz), plik) != NULL)
  134.     {
  135.         int k=0;
  136.         while(wiersz[k] != '\0')
  137.         {
  138.             if(wiersz[k] == litera)
  139.             {
  140.                 licznik++;
  141.                 k++;
  142.             }
  143.             else
  144.             {
  145.                 k++;
  146.             }
  147.         }
  148.     }
  149.  
  150.     printf ("Ilosc liter : %d ", licznik);
  151.  
  152.     fclose(plik);
  153.     return 0;
  154. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement