#include #include void errormessage(int); void encrypt_file(char *,char *,char *,char*); void decrypt_file(char *,char *,char *,char*); int main(int argc, char *argv[]) { char array1[]={'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'}; char array2[]={'u','d','n','q','w','r','x','a','z','s','p','y','e','v','t','f','g','c','k','j','h','m','o','i','b','l'}; if(argc<4) errormessage(1); if(argc>4) errormessage(2); if(!strcmp(argv[1],"-encrypt")&&!strcmp(argv[1],"-decrypt")) { printf("\n%s\n",argv[1]); errormessage(3); } if(!strcmp(argv[1],"-encrypt")) encrypt_file(argv[2],argv[3],array1,array2); if(!strcmp(argv[1],"-decrypt")) decrypt_file(argv[2],argv[3],array1,array2); return 0; } void encrypt_file(char *filesrc, char *filedest,char *array1, char *array2) { int i; char ch; FILE *fp/*ip file*/,*fc/*opfile*/; fp=fopen(filesrc,"r"); if(fp==NULL) printf("\nCould not open file %s\n",filesrc); else { fc=fopen(filedest,"r"); if(fc==NULL) { fc=fopen(filedest,"w"); if(fc==NULL) printf("\nFailed to write to file %s\n",filedest); else { while(ch!=EOF) { ch=fgetc(fp); for(i=0;i<26;i++) if(ch==array1[i]||ch==(array1[i]-32)) break; if(i<26) { if(ch==array1[i]) fputc(array2[i],fc); if(ch==(array1[i]-32)) fputc((array2[i]-32),fc); } else fputc(ch,fc); } fputc(EOF,fc); fclose(fc); } } else { printf("\nFile %s already exists.\n",filedest); fclose(fc); } fclose(fp); } return; } void decrypt_file(char *filesrc, char *filedest,char *array1, char *array2) { int i; char ch; FILE *fp/*ip file*/,*fc/*opfile*/; fp=fopen(filesrc,"r"); if(fp==NULL) printf("\nCould not open file %s\n",filesrc); else { fc=fopen(filedest,"r"); if(fc==NULL) { fc=fopen(filedest,"w"); if(fc==NULL) printf("\nFailed to write to file %s\n",filedest); else { while(ch!=EOF) { ch=fgetc(fp); for(i=0;i<26;i++) if(ch==array2[i]||ch==(array2[i]-32)) break; if(i<26) { if(ch==array2[i]) fputc(array1[i],fc); if(ch==(array2[i]-32)) fputc((array1[i]-32),fc); } else fputc(ch,fc); } fputc(EOF,fc); fclose(fc); } } else { printf("\nFile %s already exists.\n",filedest); fclose(fc); } fclose(fp); } return; } void errormessage(int messno) { switch(messno) { case 1: printf("\nInsufficient arguments.\n"); break; case 2: printf("\nToo many arguments.\n"); break; case 3: printf("\nInvalid call parameter.\n"); break; default: printf("\nInvalid error number.\n"); break; } exit(0); }