C++ program that asks the user to enter a string and then converts that string to Morse code
Morse Code Converter
Morse code is a code where each letter of the English alphabet, each digit, and various
punctuation characters are represented by a series of dots and dashes.
Write a C++ program that asks the user to enter a string, and then converts that string to
Morse code. (Use hyphens for dashes and periods for dots.)
Answer:
// Morse Code Converter
#include <iostream>
#include <string>
using namespace std;
// Prototypes
string toMorse(char);
// Global data. Each valid character and its equivalent
// morse code are stored in the parallel arrays.
const int NUM_CHARS = 40;
char regular[NUM_CHARS] = { ' ', ',', '.', '?', '0', '1', '2', '3', '4', '5',
'6', '7', '8', '9', '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'
};
string morse[NUM_CHARS] = { " ", "--..--" , ".-.-.-" , "..--.." ,
"-----", ".----", "..---", "...--",
"....-", ".....", "-....", "--...",
"---..", "----.", ".-", "-...",
"-.-.", "-..", ".", "..-.",
"--.", "....", "..", ".---",
"-.-", ".-..", "--", "-.",
"---", ".--.", "--.-", ".-.",
"...", "-", "..-", "...-",
".--", "-..-", "-.--", "--.."
};
int main()
{
string str; // To hold the user's input
// Get a word from the user.
cout << "Enter a word and I will translate it to Morse code.\n";
cout << "-> ";
getline(cin, str);
// Translate each character and display it.
int index = 0;
while (index < str.size())
{
cout << toMorse(toupper(str[index])) << endl;
index++;
}
return 0;
}
// The toMorse function accepts a char argument and
// returns a string containing the morse code
// for that character.
string toMorse(char ch)
{
// Find the character in the array.
int index = 0;
while (index < NUM_CHARS && ch != regular[index]) { index++; } string morseValue;
// To hold the morse code
if (index >= NUM_CHARS)
morseValue = "UNDEFINED"; // ch was not found
else
morseValue = morse[index]; // Get the morse code
return morseValue;
}
Comments ( 3 )
“else” expected expression error
Thanks for the resource
There is a syntax mistake in line 59
the If statement is in the comments
Thank you