Advertisement
juan_de99

Untitled

Oct 8th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.63 KB | None | 0 0
  1. include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #define ES_LETRA(X) ((X>=65)&(X<=90))||((X>=97)&(X<=122))?1:0
  6.  
  7. void desencriptar(char *reg);
  8. char restLetra(char letra,int cant);
  9.  
  10. int main()
  11. {
  12.     FILE *pEncrip,*pDesencrip;
  13.     char reg[600];
  14.  
  15.     pEncrip=fopen("encriptado.txt","rt");
  16.     if(!pEncrip){
  17.         printf("No se pudo abrir el archivo\n");
  18.         return 10;
  19.     }
  20.     pDesencrip=fopen("desencriptado.txt","wt");
  21.     if(!pDesencrip){
  22.         printf("No se pudo crear el archivo\n");
  23.         fclose(pEncrip);
  24.         return 11;
  25.     }
  26.  
  27.     while(fgets(reg,600,pEncrip)){
  28.         desencriptar(reg);
  29.         fprintf(pDesencrip,"%s",reg);
  30.     }
  31.     fclose(pEncrip);
  32.     fclose(pDesencrip);
  33.  
  34.     return 0;
  35. }
  36.  
  37. void desencriptar(char *reg){
  38.     int cont=1;
  39.     char *aux,*pFinal,letra;
  40.  
  41.     printf("%s\n",reg);
  42.  
  43.     aux=reg;
  44.     pFinal=reg;
  45.     while(*pFinal!='\n'){
  46.  
  47.         //while((*aux!=' ')& (*aux!='\n')){
  48.         while(ES_LETRA(*aux)){
  49.             //if(ES_LETRA(*aux))
  50.             *aux=restLetra(*aux,cont);
  51.             aux++;
  52.             cont++;
  53.         }
  54.         pFinal=aux;
  55.         aux--;
  56.         while(reg<aux){
  57.             letra=*aux;
  58.             *aux=*reg;
  59.             *reg=letra;
  60.             reg++;
  61.             aux--;
  62.         }
  63.         aux=pFinal+1;
  64.         reg=pFinal+1;
  65.         cont=1;
  66.  
  67.     }
  68. }
  69.  
  70. char restLetra(char letra,int cant){
  71.     static const char abc[53] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
  72.     char *aux,letFin;
  73.  
  74.     aux=strchr(abc,letra);
  75.     aux -= cant;
  76.     if(aux<abc)
  77.         aux+=52;
  78.     letFin=*aux;
  79.  
  80.     return letFin;
  81. }
  82.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement