Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.67 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <ctype.h>
  5. #include <stdbool.h>
  6.  
  7.  
  8. int main(void)
  9. {
  10.  
  11. int c;
  12. int predchozi_znak = NULL;
  13. int stejne_znaky = 0;                                        /* nejsou stejne znaky */
  14. int i = 1;                                                   /* pocitadlo */
  15. int max_i = 9;                                               /* maximum pocitadla na jeden znak */
  16.  
  17.   while ((c=getchar()) != EOF)  {
  18.  
  19.     if (isdigit(c) && (!isspace(c) || !isprint(c) || !ispunct(c)))          /* kontrola znaků */
  20.       {
  21.       fprintf(stderr, "\nText obsahuje nepovolene znaky!");
  22.       return EXIT_FAILURE;
  23.       }
  24.  
  25.     else if (i == max_i)                                    /* pocitadlo presahlo maximum */
  26.       {
  27.       putchar(i + '0');
  28.       putchar(predchozi_znak);
  29.       i = 1;
  30.       }
  31.  
  32.     else if (predchozi_znak == c)                           /* stejne znaky posobe */
  33.       {
  34.       i++;
  35.       stejne_znaky = 1;
  36.       predchozi_znak = c;
  37.       }
  38.  
  39.      else if ((predchozi_znak != c) && stejne_znaky == 1)   /* byly stejne znaky a nasleduje jiny znak */
  40.       {
  41.       putchar(i + '0');
  42.       putchar(predchozi_znak);
  43.       i = 1;
  44.       stejne_znaky = 0;
  45.       predchozi_znak = c;
  46.       }
  47.  
  48.     else if (predchozi_znak == NULL)
  49.       {
  50.       predchozi_znak = c;
  51.       }
  52.  
  53.     else
  54.       {
  55.       putchar(predchozi_znak);
  56.       predchozi_znak = c;
  57.       }
  58.     }
  59.  
  60.  
  61.   if (predchozi_znak != NULL)
  62.     {
  63.       if (i == 1)
  64.       {
  65.       putchar(predchozi_znak);
  66.       }
  67.       else
  68.       {
  69.       putchar(i + '0');
  70.       putchar(predchozi_znak);
  71.       }
  72.     }
  73.   else
  74.     {
  75.     return 0;
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement