Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.83 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. /**************************
  13.  * misto null bych pouzival radsi 0 - null je totiz oficialne vyprazdneny pointer a znamena to NULL=(void*)0;
  14. int predchozi_znak = NULL;  
  15. int stejne_znaky = 0;                                        /* nejsou stejne znaky */
  16. int i = 1;                                                   /* pocitadlo */
  17. int max_i = 9;                                               /* maximum pocitadla na jeden znak */
  18.  
  19.   while ((c=getchar()) != EOF)  {
  20.  
  21.     if (isdigit(c) && (!isspace(c) || !isprint(c) || !ispunct(c)))          /* kontrola znaků */
  22.       {
  23.       fprintf(stderr, "\nText obsahuje nepovolene znaky!");
  24.       return EXIT_FAILURE;
  25.       }
  26.  
  27.     else if (i == max_i)                                    /* pocitadlo presahlo maximum */
  28.       {
  29.       putchar(i + '0');
  30.       putchar(predchozi_znak);
  31.       i = 1;
  32.       }
  33.  
  34.     else if (predchozi_znak == c)                           /* stejne znaky posobe */
  35.       {
  36.       i++;
  37.       stejne_znaky = 1;
  38.       predchozi_znak = c;
  39.       }
  40.  
  41.      else if ((predchozi_znak != c) && stejne_znaky == 1)   /* byly stejne znaky a nasleduje jiny znak */
  42.       {
  43.       putchar(i + '0');
  44.       putchar(predchozi_znak);
  45.       i = 1;
  46.       stejne_znaky = 0;
  47.       predchozi_znak = c;
  48.       }
  49.  
  50.     else if (predchozi_znak == NULL)
  51.       {
  52.       predchozi_znak = c;
  53.       }
  54.  
  55.     else
  56.       {
  57.       putchar(predchozi_znak);
  58.       predchozi_znak = c;
  59.       }
  60.     }
  61.  
  62.  
  63.   if (predchozi_znak != NULL)
  64.     {
  65.       if (i == 1)
  66.       {
  67.       putchar(predchozi_znak);
  68.       }
  69.       else
  70.       {
  71.       putchar(i + '0');
  72.       putchar(predchozi_znak);
  73.       }
  74.     }
  75.  
  76. /* toto je naprd !
  77.   else
  78.     {
  79.     return 0;
  80.     }*/
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement