Advertisement
BlueBear

pointre.c

Mar 6th, 2013
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.79 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define SUBOR "ZNAKY.TXT"
  5.  
  6. int cislica(char c);
  7. int male_pismeno(char c);
  8. int velke_pismeno(char c);
  9. int biely(char c);
  10. void zisti(int (*p_func)(), FILE *file);
  11.  
  12. int main(void)
  13. {
  14.     FILE *file = fopen(SUBOR, "r");
  15.     int n = 0;
  16.     char vyber;
  17.  
  18.     if (file == NULL)
  19.     {
  20.         fprintf(stderr, "Chyba pri otvarani suboru s menom: %s\n", SUBOR);
  21.         exit(1);
  22.     }
  23.     rewind(file);
  24.     while(1)
  25.     {
  26.         scanf("%d", &n);
  27.         if(n > 4)
  28.         {
  29.             fprintf(stderr, "Bol zadany vacsi pocet, nez sa da. Maximum co mozete zadat, je 4.\n");
  30.             continue;
  31.         }
  32.         else
  33.         {
  34.             break;
  35.         }
  36.     }
  37.     getchar();
  38.  
  39.     for(n; n > 0; n--)
  40.     {
  41.         vyber = getchar();
  42.         getchar();
  43.         if(vyber == 'b')
  44.         {
  45.             zisti(biely, file);
  46.         }
  47.         else if(vyber == 'v')
  48.         {
  49.             zisti(velke_pismeno, file);
  50.         }
  51.         else if(vyber == 'm')
  52.         {
  53.             zisti(male_pismeno, file);
  54.         }
  55.         else if(vyber == 'c')
  56.         {
  57.             zisti(cislica, file);
  58.         }
  59.     }
  60.     if (fclose(file) == EOF)
  61.     {
  62.         fprintf(stderr, "Chyba pri zatvarani suboru s menom: %s\n", SUBOR);
  63.         exit(1);
  64.     }
  65.     return 0;
  66. }
  67.  
  68. void zisti(int (*p_func)(), FILE *file)
  69. {
  70.     int occur = 0;
  71.     while(!feof(file))
  72.     {
  73.         if(p_func(fgetc(file)))
  74.         {
  75.             occur++;
  76.         }
  77.     }
  78.     printf("%d\n", occur);
  79.     rewind(file);
  80.  
  81. }
  82.  
  83. int cislica(char c)
  84. {
  85.     return (c <= '9' && c >= '0');
  86. }
  87.  
  88. int male_pismeno(char c)
  89. {
  90.     return (c <= 'z' && c >='a');
  91. }
  92.  
  93. int velke_pismeno(char c)
  94. {
  95.     return (c <= 'Z' && c >= 'A');
  96. }
  97.  
  98. int biely(char c)
  99. {
  100.     return (c <= ' ');
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement