C program to Implement Morse code to text conversion and vice-versa.
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<process.h>
void main()
{
char str[25],str1[100];
clrscr();
fflush(stdin);
printf("enter the String");
gets(str);
int j=0;
for(int i=0;i<=strlen(str);++)
{
switch(toupper(str[i]))
{
case 'A':
str1[j++]='.';
str1[j]='.';
break;
case 'b':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'c':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'D':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'E':
str1[j]='.';
break;
case 'F':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'G':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'H':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'I':
str1[j++]='.';
str1[j]='.';
break;
case 'J':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'K':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'L':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'M':
str1[j++]='-';
str1[j]='-';
break;
case 'N':
str1[j++]='-';
str1[j]='.';
break;
case 'O':
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case 'P':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case 'Q':
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case 'R':
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'S':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'T':
str1[j]='-';
break;
case 'U':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'V':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'W':
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case 'X':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'y':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'Z':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '0':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '1':
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '2':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'F':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '3':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '4':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '5':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '6':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '7':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '8':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '9':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case '.':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ',':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ':':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '?':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
/* case '\';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break; */
case '-':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ';':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '(':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ')':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ']':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '[':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case '}':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case '{':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case '"':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '+':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '/':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '%':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '&':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '$':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '*':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '^':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '#':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '@':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '=':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='';
break;
}
j++;
}
str1[j-1]='\0';
puts(str1);
getch();
} |
#include<stdio.h>
#include<conio.h>
#include<string.h>
#include<process.h>
void main()
{
char str[25],str1[100];
clrscr();
fflush(stdin);
printf("enter the String");
gets(str);
int j=0;
for(int i=0;i<=strlen(str);++)
{
switch(toupper(str[i]))
{
case 'A':
str1[j++]='.';
str1[j]='.';
break;
case 'b':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'c':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'D':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'E':
str1[j]='.';
break;
case 'F':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'G':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'H':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'I':
str1[j++]='.';
str1[j]='.';
break;
case 'J':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'K':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'L':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'M':
str1[j++]='-';
str1[j]='-';
break;
case 'N':
str1[j++]='-';
str1[j]='.';
break;
case 'O':
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case 'P':
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case 'Q':
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='.';
break;
case 'R':
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'S':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'T':
str1[j]='-';
break;
case 'U':
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'V':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'W':
str1[j++]='.';
str1[j++]='-';
str1[j]='-';
break;
case 'X':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case 'y':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case 'Z':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '0':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '1':
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '2':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case 'F':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '3':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '4':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '5':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='.';
break;
case '6':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '7':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '8':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '9':
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case '.':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ',':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ':':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '?':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
/* case '\';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break; */
case '-':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ';':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j]='.';
break;
case '(':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ')':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case ']':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='-';
break;
case '[':
str1[j++]='-';
str1[j++]='.';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j]='.';
break;
case '}':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case '{':
str1[j++]='-';
str1[j++]='.';
str1[j++]='-';
str1[j++]='-';
str1[j++]='.';
str1[j]='-';
break;
case '"':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '+':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '/':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '%':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '&':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '$':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '*':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '^':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '#':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '@':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='-';
break;
case '=':
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j++]='.';
str1[j]='';
break;
}
j++;
}
str1[j-1]='\0';
puts(str1);
getch();
}
Editorial Team
We are a group of young techies trying to provide the best study material for all Electronic and Computer science students. We are publishing Microcontroller projects, Basic Electronics, Digital Electronics, Computer projects and also c/c++, java programs.
This is great but even though you encode a normal string into a morse string how can you decode the morse string to normal string , i’m having trouble in seperating a mourse character .
my choice is get the string in a array and for each character is converted into a morse string and stored in a 2-Dimentional array .
but it occupies a lot of space and time , can someone suggest someidea …..
thanks in advance.
i think L is . _ . . (dit dah dit dit)
and for loop starts from 0- (n-1) correct me if i am wrong .
// new_morse_code.cpp : Defines the entry point for the console application.
//
// morse_code.cpp : Defines the entry point for the console application.
//
#include
#include
#include
char * morse_alpha[] = {
“.-“, “-…”, “-.-.”, “-..”, “.”, “..-.”,
“–.”, “….”, “..”, “.—“, “-.-“, “.-..”,
“–“, “-.”, “—“, “.–.”, “–.-“, “.-.”,
“…”, “-“, “..-“, “…-“, “.–“, “-..-“,
“-.–“, “–..”
};
char *morse_num[] = {
“—–“, “.—-“, “..—“,
“…–“, “….-“, “…..”,
“-….”, “–…”, “—..”,
“—-.”
};
void find_morse(char *s);
int main()
{
char str[500];
printf(“Enter anything : “);
while (1)
{
scanf(“%s”, str); //You can use gets function too;
find_morse(str);
printf(“\n”);
}
return 0;
}
void find_morse(char *s)
{
while (*s)
{
switch (toupper(*s))
{
case ‘A’:
printf(“%s”, morse_alpha[‘A’ – 65]);
s++;
break;
case ‘B’:
printf(” %s”, morse_alpha[‘B’ – 65]);
s++;
break;
case ‘C’:
printf(” %s”, morse_alpha[‘C’ – 65]);
s++;
break;
case ‘D’:
printf(” %s”, morse_alpha[‘D’ – 65]);
s++;
break;
case ‘E’:
printf(” %s”, morse_alpha[‘E’ – 65]);
s++;
break;
case ‘F’:
printf(” %s”, morse_alpha[‘F’ – 65]);
s++;
break;
case ‘G’:
printf(” %s”, morse_alpha[‘G’ – 65]);
s++;
break;
case ‘H’:
printf(” %s”, morse_alpha[‘H’ – 65]);
s++;
break;
case ‘I’:
printf(” %s”, morse_alpha[‘I’ – 65]);
s++;
break;
case ‘J’:
printf(” %s”, morse_alpha[‘J’ – 65]);
s++;
break;
case ‘K’:
printf(” %s”, morse_alpha[‘K’ – 65]);
s++;
break;
case ‘L’:
printf(” %s”, morse_alpha[‘L’ – 65]);
s++;
break;
case ‘M’:
printf(” %s”, morse_alpha[‘M’ – 65]);
s++;
break;
case ‘N’:
printf(” %s”, morse_alpha[‘N’ – 65]);
s++;
break;
case ‘O’:
printf(” %s”, morse_alpha[‘O’ – 65]);
s++;
break;
case ‘P’:
printf(” %s”, morse_alpha[‘P’ – 65]);
s++;
break;
case ‘Q’:
printf(” %s”, morse_alpha[‘Q’ – 65]);
s++;
break;
case ‘R’:
printf(” %s”, morse_alpha[‘R’ – 65]);
s++;
break;
case ‘S’:
printf(” %s”, morse_alpha[‘S’ – 65]);
s++;
break;
case ‘T’:
printf(” %s”, morse_alpha[‘T’ – 65]);
s++;
break;
case ‘U’:
printf(” %s”, morse_alpha[‘U’ – 65]);
s++;
break;
case ‘V’:
printf(” %s”, morse_alpha[‘V’ – 65]);
s++;
break;
case ‘W’:
printf(” %s”, morse_alpha[‘W’ – 65]);
s++;
break;
case ‘X’:
printf(” %s”, morse_alpha[‘X’ – 65]);
s++;
break;
case ‘Y’:
printf(” %s”, morse_alpha[‘Y’ – 65]);
s++;
break;
case ‘Z’:
printf(” %s”, morse_alpha[‘Z’ – 65]);
s++;
break;
case ‘0’:
printf(” %s”, morse_num[0]);
s++;
break;
case ‘1’:
printf(” %s”, morse_num[1]);
s++;
break;
case ‘2’:
printf(” %s”, morse_num[2]);
s++;
break;
case ‘3’:
printf(” %s”, morse_num[3]);
s++;
break;
case ‘4’:
printf(” %s”, morse_num[4]);
s++;
break;
case ‘5’:
printf(” %s”, morse_num[5]);
s++;
break;
case ‘6’:
printf(” %s”, morse_num[6]);
s++;
break;
case ‘7’:
printf(” %s”, morse_num[7]);
s++;
break;
case ‘8’:
printf(” %s”, morse_num[8]);
s++;
break;
case ‘9’:
printf(” %s”, morse_num[9]);
s++;
break;
default:
return;
}
//s++;
}
}