C program to Implement Morse code to text conversion and vice-versa.

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();
}
Editorial Team
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.

5 thoughts on “C program to Implement Morse code to text conversion and vice-versa.

  1. 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.

  2. // 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++;
    }
    }

Leave a Reply

Your email address will not be published. Required fields are marked *

Get the latest updates on your inbox

Be the first to receive the latest updates from Codesdoc by signing up to our email subscription.

    StudentProjects.in