SHARE
TWEET

Untitled

a guest Dec 8th, 2019 71 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5.  
  6. // subprogram in care verificam daca un substring este format doar din cifre
  7. int verif(char *cuv){
  8.     int lung = strlen(cuv);
  9.     for (int i = 0; i < lung; i++)
  10.         if ((cuv[i] < '0' || cuv[i] > '9') && cuv[i] != '\n') //trebuie sa verificam daca caracterul este diferit si de endline
  11.             return 0;
  12.     return 1;
  13. }
  14. //subprogram in care criptam cuvintele
  15. void encriptare(char *cuv){
  16.     int key = cuv[0];   //retinem cheia
  17.     int lung = strlen(cuv);
  18.     if (cuv[lung-1] == '\n'){  //tratam diferit cazul in care ultimul caracter este endline
  19.         cuv[lung-1] = '\0';
  20.         for (int i = 1; i < lung-1; ++i){
  21.             if (cuv[i] != 26)   // caracterul sa fie diferit de end of file
  22.                 cuv[i] = ((key + cuv[i])%256); //encriptam cu cheia
  23.         }
  24.     }
  25.     else
  26.         for (int i = 1; i < lung; ++i){
  27.             if (cuv[i] != 26)   // sa fie diferit de end of file
  28.             cuv[i] = (key + cuv[i]%256);    //encriptam cu cheia
  29.         }
  30.     printf("%s ",cuv); //afisam cuvantul nou creat
  31. }
  32. //subprogram de citire si apelare a celorlalte subprograme
  33. void citire(){
  34.     int n;
  35.     scanf("%d",&n); //citim numarul de randuri
  36.     char *sir_decodificat;
  37.     sir_decodificat = calloc(200,sizeof(char)); //alocam dinamic sirul pe care vrem sa il codificam
  38.     fgets(sir_decodificat,200,stdin); // trebuie sa citim prima data in gol pentru a putea citi fiecare linie
  39.     free(sir_decodificat);
  40.         for (int i = 0; i < n; i++){
  41.             sir_decodificat = calloc(200,sizeof(char));
  42.                 fgets(sir_decodificat,200,stdin);
  43.                 int len = strlen(sir_decodificat);
  44.    
  45.                 char *cuv = strtok(sir_decodificat," "); //luam fiecare substring despartit prin spatiu si verificam daca e numar sau nu
  46.                 while(cuv){
  47.                     int result = verif(cuv);
  48.                         if (result == 0)    // daca substringul este cuvant, il encriptam
  49.                             encriptare(cuv);
  50.                         else
  51.                             printf("%s ",cuv);  //altfel il afisam
  52.                     cuv = strtok(NULL," ");
  53.         }
  54.         printf("\n");
  55.         free(sir_decodificat);  //eliberam memoria folosita
  56. }
  57.  
  58. }
  59.  
  60.  
  61. int main (){
  62.  
  63.     citire();   //apelam subprogramul de citire care mai departe apeleaza restul subprogramelor
  64.  
  65. return 0;
  66.  
  67. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top