Advertisement
poczatkujacykoder

Untitled

Oct 17th, 2014
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.83 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int i, j, k, r, spr;
  5.  
  6. char *szyfr;
  7. char klucz[] = "can";
  8. char zakodowane[999];
  9. char *tab_to_read;
  10. char **tab1;
  11. char *tab2;
  12.  
  13.  
  14. void f_szyfr(int z);
  15. void f_klucz();
  16. void f_reszta(int d);
  17. int main(){
  18.  
  19.     int dl_tekstu;
  20.     fpos_t dl_tekstu_fpos_t;
  21.  
  22.     FILE *code_file = fopen("szyfr.txt", "r");
  23.     if (!code_file)
  24.         return -1;
  25.  
  26.  
  27.  
  28.     ////////////////////////////   ustawienie wskaznika na koniec pliku + liczba bitow + ustawienie wskaznika na poczatek pliku
  29.     fseek(code_file, 0, SEEK_END);
  30.     fgetpos(code_file, &dl_tekstu_fpos_t);
  31.     fseek(code_file, 0, 0);
  32.     dl_tekstu = (int)dl_tekstu_fpos_t;
  33.  
  34.     ////////////////////////////
  35.     ///printf("%d",dl_tekstu);
  36.  
  37.  
  38.     szyfr = ((char*)malloc(dl_tekstu*(sizeof(char)) + 1));
  39.     if (!szyfr)
  40.         return -2;
  41.  
  42.  
  43.     for (i = 0; i < dl_tekstu; i++){
  44.         fscanf(code_file, "%s", szyfr);
  45.     }
  46.     for (spr = 0; spr < dl_tekstu; spr++)
  47.         printf("%c", szyfr[i]);
  48.  
  49.     //printf("elo");
  50.     ////////////////////////////
  51.  
  52.     f_szyfr(dl_tekstu);
  53.     f_klucz();
  54.     f_reszta(dl_tekstu);
  55.  
  56.     //////////////////////////// ZAPISYWANIE DO PLIKU "ZASZYFROWANE.TXT"
  57.     FILE* zapis_szyfru;
  58.     zapis_szyfru = fopen("zaszyfrowane.txt", "w");
  59.  
  60.     for (i = 0; i < dl_tekstu;i++)
  61.     fprintf(zapis_szyfru, "%c", zakodowane[i] );
  62.  
  63.  
  64.     ////////////////////////////
  65.     FILE *odczyt_zaszyfrowanego_tekstu;
  66.     odczyt_zaszyfrowanego_tekstu = fopen("zaszyfrowane.txt", "r");
  67.     if (!odczyt_zaszyfrowanego_tekstu)
  68.         return -3;
  69.  
  70.     ////////////////////////////   
  71.  
  72.    
  73.     int dl_znakow_zaszyfrowane_int;
  74.     fpos_t dl_znakow_zaszyfrowane_fpos_t;
  75.     fseek(odczyt_zaszyfrowanego_tekstu, 0, SEEK_END);
  76.     fgetpos(odczyt_zaszyfrowanego_tekstu, &dl_znakow_zaszyfrowane_fpos_t);
  77.     fseek(odczyt_zaszyfrowanego_tekstu, 0, 0);
  78.     dl_znakow_zaszyfrowane_int = (int)dl_znakow_zaszyfrowane_fpos_t;
  79.     ///////////////////////////
  80.    
  81.     fscanf(odczyt_zaszyfrowanego_tekstu, "%s", tab_to_read);
  82.  
  83.  
  84.    
  85.  
  86.     tab1 = (char**)malloc(sizeof(*tab2));
  87.     if (!tab1)
  88.         return -4;
  89.  
  90.     ///////////////////////////////////////////////
  91.     for (i = 2; i<10; i++)                                                              //// liczba znakow klucza
  92.     {
  93.         for (j = 0; j<i; j++)                                                           //// liczba tablic-polowek
  94.         {
  95.             tab1[j] = (char*)malloc(sizeof((dl_tekstu / 2)*sizeof(char)) + 1);
  96.  
  97.             for (k = 0; k< '\0'; k += i)                                                ///// przypisanie wartosci co n wyrazow dla tab[j]
  98.                 tab2[j] = tab_to_read[k];
  99.  
  100.  
  101.  
  102.  
  103.         }
  104.     }
  105.  
  106.     ////////////////////////////
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116.     ////////////////////////////
  117.  
  118.     free(tab1);
  119.     fclose(odczyt_zaszyfrowanego_tekstu);
  120.     free(szyfr);
  121.     fclose(code_file);
  122.     system("pause");
  123.     return 0;
  124. }
  125. ////////////////////////////
  126. void f_szyfr(int z){
  127.     int j = 97;
  128.  
  129.     printf("\n");
  130.     printf("%s", szyfr);
  131.     printf("dlugosc szyfru =  %d\n\n", z);
  132.  
  133.     for (i = 0; i < z; i++){
  134.         for (k = 0; k<26; k++){
  135.             if (szyfr[i] == j)
  136.                 szyfr[i] = k;
  137.  
  138.             j++;
  139.         }
  140.         j = 97;
  141.     }
  142.  
  143.     for (i = 0; i < z; i++)
  144.         printf("%d\t", szyfr[i]);
  145.  
  146.  
  147. }
  148. ////////////////////////////
  149. void f_klucz(){
  150.     int j = 97;
  151.  
  152.     printf("slowo szyfrujace to: %s\n", klucz);
  153.     printf("dlugosc klucza = %d\n\n", sizeof(klucz) - 1);
  154.  
  155.     for (i = 0; i < sizeof(klucz) - 1; i++){
  156.         for (k = 0; k<26; k++){
  157.             if ((klucz[i] == j))
  158.                 ((klucz[i] = k));
  159.  
  160.             j++;
  161.         }
  162.         j = 97;
  163.     }
  164.  
  165.     for (i = 0; i < sizeof(klucz) - 1; i++)
  166.         printf("%d\t", klucz[i]);
  167.  
  168.     printf("//\n/end_of_klucz///\n");
  169.  
  170. }
  171. ////////////////////////////
  172. void f_reszta(int d){
  173.  
  174.     j = 0;
  175.     for (i = 0; i < d; i++){
  176.         ;
  177.  
  178.         if (j == sizeof(klucz) - 1)
  179.             j = 0;
  180.  
  181.         zakodowane[i] = ((szyfr[i] + klucz[j]) % 26);
  182.         j++;
  183.     }
  184.     for (i = 0; i < d; i++)
  185.     {
  186.         printf("%d\t", zakodowane[i]);
  187.     }
  188.  
  189.  
  190.  
  191.     for (i = 0; i < d; i++){  /// zamienia na ASCII
  192.         j = 97;
  193.         for (k = 0; k<26; k++){
  194.             if (zakodowane[i] == k)
  195.                 zakodowane[i] = j;
  196.  
  197.             j++;
  198.         }
  199.  
  200.     }
  201.     printf("\n");
  202.  
  203.     for (i = 0; i < d; i++)
  204.     {
  205.         printf("%c", zakodowane[i]);
  206.     }
  207.     printf("\n\n\n\n");
  208. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement