viernes, 1 de octubre de 2021

Encriptación de un texto por sustitución monoalfabética. Un ejercicio en C/C++

//////////////////////////////////////////
// Còpia encriptada per substitució monoalfabètica
// Joan Aranès Clua
// 7/04/2002
//////////////////////////////////////////


// MANEIG DE L'EXECUTABLE:
//
// Cal posar-nos a la consola del DOS 
// i anar al directori on es troba l'executable m8e1.exe
// seguint els següents passos:
// 1. generem un fitxer de prova fent, per exemple,
//	1.1.: %>copy con prova.txt
//			aixo es una prova
//          CTRL+Z (insereix la marca de final d'arxiu EOF)
// 2. executem el programa que genará un segon arxiu amb el missatge encriptat 
//    el nom del qual haurem de triar (p.ex: 'arxiu2.txt') fent: 
//	2.1.: %>m8e1 prova.txt prova2.txt
// 3. comprovar el contingut del fitxer generat 
//        %>type prova2.txt




    #include <stdio.h>
	#include <ctype.h>

    
	void main(int argc, char *argv[]){
         FILE *origen, *desti;
         char car;
		 int codi; //codi de substitució


         if(argc!=3){
            printf("S'ha d'especificar arxiu origen i arxiu destí\n");
            return;
         }

		 printf("\n\nintroduïu el codi (0-25)...\n");
		 scanf("%d", &codi);

         origen=fopen(argv[1],"rb");//fitxer de lectura i binari
         desti=fopen(argv[2],"wb");// fitxer d'escriptura i binari
         if (origen==NULL || desti==NULL){
             printf("no es pot realitzar l'operació\n");
             return;
         } 
         car=getc(origen);
         while(!feof(origen)) 
			 // llegeix en el fitxer origen fins trobar
			 // la marca EOF de final d'arxiu
		 {
			 if (car!=' ') 
				 // si no es tracta d'un espai en blanc 			    				 
				{
				 car =(tolower(car)-97+codi)%26+97;
				}
           putc(car,desti); // també copia els espais 
           car=getc(origen);
         }
         fclose(origen);
         fclose(desti);
     }

No hay comentarios:

Publicar un comentario