Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <conio.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <cctype>
- FILE *fw,*fr;
- void menu();
- int x=0;
- char *encription(const char S),*decription(char *text);
- void menu(){
- printf("***** Speak friend and enter *****\n");
- printf("***** Welcome to a program which (en/de)crypts text with a Morse code *****\n");
- printf("***** Enter 1 for encrypting *****\n");
- printf("***** Enter 2 for decrypting *****\n");
- printf("***** Enter 3 for help *****\n");
- printf("***** Enter 4 to close the program *****\n");
- }
- int main() {
- fw=fopen("I:\\Documents and Settings\\Jacek\\Pulpit\\meh\\tlumaczenie2.txt","w");
- fr=fopen("I:\\Documents and Settings\\Jacek\\Pulpit\\meh\\morse.txt","r");
- if(fr==NULL)
- {
- printf("error");
- exit(1);
- }
- menu();
- char S=0;
- char text[100];
- while(S!=4)
- {
- scanf("%d",&S);
- switch(S)
- {
- case 1:
- {
- printf("***** encryption of given text, which is: *****\n\n");
- fgets(text,200,fr);
- puts(text);
- printf("\n***** morse code *****\n");
- printf("***** every letter is separated by | sign *****\n");
- printf("***** every word is separated by space *****\n\n");
- while(text[x]!='\0')
- {
- if(x==strlen(text)){
- text[++x]='\0';
- }
- fprintf(fw,"%s",encription(toupper(text[x])));
- fprintf(fw,"|");
- printf("%s",encription(toupper(text[x])));
- printf("|");
- x++;
- }
- break;
- }
- case 2:
- {
- printf("***** decryption of given morse code, which is: *****\n");
- fgets(text,100,fr);
- puts(text);
- printf("***** decrypted text *****\n");
- text[strlen(text)+1]='\0';
- puts(decription(text));
- break;
- }
- case 3:
- {
- printf(" 1 - latin to morse \n 2 - morse to latin \n 4 - close the program \n");
- printf(" Morse code consists of . (dot) and - (dash)\n");
- printf("and these are only signs you're allowed to use in morse\n");
- printf("In case of used not allowed signs, you will receive \n");
- printf("(unspecified) in encryption \n nothing in decryption\n");
- break;
- }
- default:
- {
- printf("***** Please type 3 for more informations *****\n");
- break;
- }
- }
- }
- fclose(fw);
- fclose(fr);
- return 0;
- }
- char *encription(const char S)
- {
- switch(S)
- {
- case 'A':{
- return(".-");
- break;
- }
- case 'B':{
- return("-...");
- break;
- }
- case 'C':{
- return("-.-.");
- break;
- }
- case 'D':{
- return("-..");
- break;
- }
- case 'E':{
- return(".");
- break;
- }
- case 'F':{
- return("..-.");
- break;
- }
- case 'G':{
- return("--.");
- break;
- }
- case 'H':{
- return("....");
- break;
- }
- case 'I':{
- return("..");
- break;
- }
- case 'J':{
- return(".---");
- break;
- }
- case 'K':{
- return("-.-");
- break;
- }
- case 'L':{
- return(".-..");
- break;
- }
- case 'M':{
- return("--");
- break;
- }
- case 'N':{
- return("-.");
- break;
- }
- case 'O':{
- return("---");
- break;
- }
- case 'P':{
- return(".--.");
- break;
- }
- case 'Q':{
- return("--.-");
- break;
- }
- case 'R':{
- return(".-.");
- break;
- }
- case 'S':{
- return("...");
- break;
- }
- case 'T':{
- return("-");
- break;
- }
- case 'U':{
- return("..-");
- break;
- }
- case 'V':{
- return("...-");
- break;
- }
- case 'W':{
- return(".--");
- break;
- }
- case 'X':{
- return("-..-");
- break;
- }
- case 'Y':{
- return("-.--");
- break;
- }
- case 'Z':{
- return("--..");
- break;
- }
- case '1':{
- return(".----");
- break;
- }
- case '2':{
- return("..---");
- break;
- }
- case '3':{
- return("...--");
- break;
- }
- case '4':{
- return("....-");
- break;
- }
- case '5':{
- return(".....");
- break;
- }
- case '6':{
- return("-....");
- break;
- }
- case '7':{
- return("--...");
- break;
- }
- case '8':{
- return("---..");
- break;
- }
- case '9':{
- return("----.");
- break;
- }
- case '0':{
- return("-----");
- break;
- }
- case ' ':
- {
- return(" ");
- break;
- }
- default:
- {
- return("(unspecified)");
- break;
- }
- }
- }
- char *decription(char *text)
- {
- int a=0,b=0,c=0;
- int lenght;
- lenght=strlen(text);
- char *tab[]= {".-","-...","-.-.","-..", ".", "..-.", "--.",
- "....", "..", ".---", "-.-", ".-..", "--",
- "-.", "---", ".--.", "--.-", ".-.", "...", "-",
- "..-", "...-", ".--", "-..-", "-.--", "--..",
- ".----","..---","...--","....-",".....","-....",
- "--...","---..","----.","-----"};
- char *result,*str;
- str=(char*)calloc(5,sizeof(char));
- result=(char*)calloc(lenght, sizeof(char));
- while(*text)
- {
- str[a]=*text;
- if(*text=='|' || *text=='\0')
- {
- str[a]=0;
- text++;
- for(c=0;c<=36;c++)
- {
- if(strcmp(str,tab[c])==0)
- {
- result[b]=c+'A';
- b++;
- }
- a=0;
- }
- }
- else
- {
- a++;
- text++;
- }
- }
- _getch();
- return result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement