Untitled
unknown
plain_text
3 years ago
5.0 kB
3
Indexable
#include<stdlib.h> #include <stdio.h> #include <string.h> void decode_caesar(int cheie, char mesaj[]) { for(int i=0; i<strlen(mesaj); i++) { int copie=cheie; while(copie) { if(mesaj[i]=='A') { mesaj[i]='Z'; } else { if(mesaj[i]=='a') { mesaj[i]='z'; } else { if(mesaj[i]=='0') { mesaj[i]='9'; } else { mesaj[i]=mesaj[i]-1; } } } copie--; } } } int main() { char cerinta[20]; fgets(cerinta, sizeof cerinta, stdin); if(strcmp(cerinta,"caesar\n")==0) ///caesar { int cheie; scanf("%d",&cheie); char mesaj[1001]; fgets(mesaj, sizeof mesaj, stdin); ///pt buffer fgets(mesaj, sizeof mesaj, stdin); for(int i=0; i<strlen(mesaj); i++) { int copie=cheie; while(copie) { if(mesaj[i]=='A') { mesaj[i]='Z'; } else { if(mesaj[i]=='a') { mesaj[i]='z'; } else { if(mesaj[i]=='0') { mesaj[i]='9'; } else { mesaj[i]=mesaj[i]-1; } } } copie--; } } } if(strcmp(cerinta,"vigenere\n")==0) { char cheie[1001],text_criptat[1001],text_decriptat[1001]; fgets(cheie, sizeof cheie, stdin); int dim_cheie=strlen(cheie)-1; fgets(text_criptat, sizeof text_criptat, stdin); for(int i=0; i<strlen(text_criptat); i++) { if(text_criptat[i]>='0' && text_criptat[i]<='9') { char scazut=i%dim_cheie+'0'; printf("Scazutul este %d\n",scazut); text_decriptat[i]=(text_criptat[i]-scazut+9)%9; text_decriptat[i]+='0'; printf("criptarea lui %c este %c\n",text_criptat[i],text_decriptat[i]); } else { char scazut=i%dim_cheie+'a'; printf("Scazutul este %d\n",scazut); text_decriptat[i]=(text_criptat[i]-scazut+26)%26; text_decriptat[i]+='a'; } } for(int i=0; i<strlen(text_criptat)-1; i++) printf("%c",text_decriptat[i]); } if(strcmp(cerinta,"addition\n")==0) { int cheie; scanf("%d",&cheie); char primul[1001]; fgets(primul, sizeof primul, stdin); ///pt buffer fgets(primul, sizeof primul, stdin); char doilea[1001]; fgets(doilea, sizeof doilea, stdin); decode_caesar(cheie,primul); decode_caesar(cheie,doilea); strrev(primul); strrev(doilea); if(strlen(primul)>strlen(doilea)) { for(int i=strlen(doilea); i<strlen(primul); i++) { doilea[i]='0'; } } if(strlen(doilea)>strlen(primul)) { for(int i=strlen(primul); i<strlen(doilea); i++) { primul[i]='0'; } } for(int i=0; i<strlen(primul); i++) { printf("%c",primul[i]); } printf("\n"); for(int i=0; i<strlen(doilea); i++) { printf("%c",doilea[i]); } printf("\n"); int addition=0; char rezultat[1001]={0}; int contor=0,suma=0; for(int i=1; i<strlen(primul); i++) ///au lungimea egala primul si doilea asa ar trb { int numar1=primul[i]-'0'; int numar2=doilea[i]-'0'; suma=numar1+numar2; if(addition==1) { suma+=1; } if(suma>9) { suma=suma-10; addition=1; } rezultat[contor]=suma+'0'; contor++; /// printf("suma este %d",suma); } if(addition==1) { rezultat[contor]='1'; contor++; } strrev(rezultat); for(int i=0;i<contor;i++) { printf("%c",rezultat[i]); } } }
Editor is loading...