Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- // subprogram in care verificam daca un substring este format doar din cifre
- int verif(char *cuv){
- int lung = strlen(cuv);
- for (int i = 0; i < lung; i++)
- if ((cuv[i] < '0' || cuv[i] > '9') && cuv[i] != '\n') //trebuie sa verificam daca caracterul este diferit si de endline
- return 0;
- return 1;
- }
- //subprogram in care criptam cuvintele
- void encriptare(char *cuv){
- int key = cuv[0]; //retinem cheia
- int lung = strlen(cuv);
- if (cuv[lung-1] == '\n'){ //tratam diferit cazul in care ultimul caracter este endline
- cuv[lung-1] = '\0';
- for (int i = 1; i < lung-1; ++i){
- if (cuv[i] != 26) // caracterul sa fie diferit de end of file
- cuv[i] = ((key + cuv[i])%256); //encriptam cu cheia
- }
- }
- else
- for (int i = 1; i < lung; ++i){
- if (cuv[i] != 26) // sa fie diferit de end of file
- cuv[i] = (key + cuv[i]%256); //encriptam cu cheia
- }
- printf("%s ",cuv); //afisam cuvantul nou creat
- }
- //subprogram de citire si apelare a celorlalte subprograme
- void citire(){
- int n;
- scanf("%d",&n); //citim numarul de randuri
- char *sir_decodificat;
- sir_decodificat = calloc(200,sizeof(char)); //alocam dinamic sirul pe care vrem sa il codificam
- fgets(sir_decodificat,200,stdin); // trebuie sa citim prima data in gol pentru a putea citi fiecare linie
- free(sir_decodificat);
- for (int i = 0; i < n; i++){
- sir_decodificat = calloc(200,sizeof(char));
- fgets(sir_decodificat,200,stdin);
- int len = strlen(sir_decodificat);
- char *cuv = strtok(sir_decodificat," "); //luam fiecare substring despartit prin spatiu si verificam daca e numar sau nu
- while(cuv){
- int result = verif(cuv);
- if (result == 0) // daca substringul este cuvant, il encriptam
- encriptare(cuv);
- else
- printf("%s ",cuv); //altfel il afisam
- cuv = strtok(NULL," ");
- }
- printf("\n");
- free(sir_decodificat); //eliberam memoria folosita
- }
- }
- int main (){
- citire(); //apelam subprogramul de citire care mai departe apeleaza restul subprogramelor
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement