Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.45 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4. #include <string.h>
  5.  
  6.  
  7.  
  8. char void  encode (char*)
  9. {
  10.         int n = atoi(argv[2]);
  11.         char pole[n];
  12.         char opakovany_retezec[n];
  13.         int c;
  14.         int index=0;
  15.         int opakovani=1;
  16.         int i;
  17.  
  18.  
  19.         for (i = 0;i < n; i++)
  20.         {
  21.                 pole[i]=getchar();
  22.         }
  23.  
  24.         while ((c = getchar()) != EOF)
  25.         {
  26.                 // nalezen stejny znak
  27.                 if (c == pole[index])
  28.                 {
  29.                         index++;
  30.  
  31.                         //opakovany_retezec[index] = c;
  32.  
  33.                         if (index == n)
  34.                         {
  35.                                 opakovani++;
  36.  
  37.                                 int i;
  38.                                 for(i = 0; i < n; i++)
  39.                                         opakovany_retezec[i]=pole[i];
  40.  
  41.                                 index=0;
  42.                         }
  43.                 }
  44.                                                            // nalezen jiny znak
  45.                 else{
  46.                         // vytiskni pocet a opakovany retezec
  47.                         if (opakovani > 1)
  48.                         {
  49.                                 putchar('0' + opakovani);
  50.  
  51.                                 int i;
  52.                                 for (i = 0; i < n; i++)
  53.                                         putchar(opakovany_retezec[i]);
  54.                                 opakovani = 1;
  55.                         }
  56.                         // posun pole a tisk
  57.  
  58.                         if (index == 0)
  59.                         {
  60.                                 // posun pole
  61.                                 for(i = 0;i < n - 1; i++)
  62.                                         pole[i]=pole[i + 1];
  63.  
  64.                                 pole[n-1]=c;
  65.                         }
  66.                         else
  67.                         {
  68.                                 int i;
  69.                                 //for (i = 0; i <= index; i++)
  70.                                         //putchar(pole[i]);
  71.  
  72.                                 // zkopiruj na zacatek pole
  73.                                 for (i = index + 1; i < n; i++)
  74.                                         pole[i - index - 1] = pole[i];
  75.  
  76.                                 for (i = index; i < n - 1; i++)
  77.                                         pole[i] = opakovany_retezec[i - index];
  78.                          }
  79.                     }
  80.         }
  81. }
  82.  
  83. char void decode(char*)
  84. {
  85.         char c;
  86.  int n=atoi(argv[2]);
  87.         while((c = getchar()) !=EOF)
  88.         {
  89.         if ((c >'1') && (c <'9'))
  90.                 {
  91.                         int x= c - '0';
  92.                         char pole[n];
  93.                         int i;
  94.                         int j;
  95.                         for(i=0; i<n; i++)
  96.                                 pole[i]=getchar();
  97.                         for (i=0; i<x; i++)
  98.                                 {
  99.                                         for (j=0; j<n; j++)
  100.                                         putchar(pole[j]);
  101.                                 }
  102.  
  103.                 }
  104.  
  105.  
  106.         else putchar(c);
  107.  
  108.  
  109.  
  110.         }
  111.  
  112.  
  113. }
  114.  
  115. printf("\n");
  116. }
  117. int main(int argc,char **argv)
  118. {
  119.         if (strcmp(argv[1],"-c") == 0)
  120.         encode(argv[2]);
  121.         else if (strcmp(argv[1],"-d")== 0)
  122.         decode(argv[2]);
  123.         else if (strcmp(argv[1],"-h")== 0)
  124.         help();
  125.         return 0;
  126. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement