morse
This commit is contained in:
parent
d04ebdcad6
commit
cff475a854
5 changed files with 86 additions and 0 deletions
5
morse/Makefile
Normal file
5
morse/Makefile
Normal file
|
@ -0,0 +1,5 @@
|
|||
# Only define if needed:
|
||||
# TARGET = main.elf
|
||||
# SRCS = main.cc
|
||||
|
||||
include ../config.mk
|
12
morse/main.cc
Normal file
12
morse/main.cc
Normal file
|
@ -0,0 +1,12 @@
|
|||
#include "morse_code.h"
|
||||
#include <iostream>
|
||||
|
||||
int main() {
|
||||
Morse_code mc{"morse.def"};
|
||||
std::cout << mc.encode("Hello Morse") << "\n"; // .... . .-.. .-.. --- -- --- .-. ... .
|
||||
|
||||
// std::cout << mc.decode("... --- ...") << "\n";
|
||||
// std::cout << mc.decode(".... ----") << "\n"; // ---- is not a valid code
|
||||
// std::cout << mc.decode(mc.encode("loopback test")) << "\n";
|
||||
//
|
||||
}
|
26
morse/morse.def
Normal file
26
morse/morse.def
Normal file
|
@ -0,0 +1,26 @@
|
|||
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 --..
|
29
morse/morse_code.cc
Normal file
29
morse/morse_code.cc
Normal file
|
@ -0,0 +1,29 @@
|
|||
#include "morse_code.h"
|
||||
|
||||
Morse_code::Morse_code(std::string filename) {
|
||||
std::ifstream in(filename);
|
||||
|
||||
char c;
|
||||
while (in >> c) {
|
||||
std::string s;
|
||||
in >> s;
|
||||
morse_map.insert(std::make_pair(c, s)); // gay ass
|
||||
}
|
||||
}
|
||||
|
||||
std::string Morse_code::encode(const std::string &str) {
|
||||
|
||||
std::string res;
|
||||
|
||||
for (auto &c : str) {
|
||||
auto it = morse_map.find(c);
|
||||
if (it != morse_map.end()) {
|
||||
res += it->second + " ";
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
// std::string Morse_code::decode(const std::string &str) {
|
||||
|
||||
// }
|
14
morse/morse_code.h
Normal file
14
morse/morse_code.h
Normal file
|
@ -0,0 +1,14 @@
|
|||
#pragma once
|
||||
#include <string>
|
||||
#include <map>
|
||||
#include <fstream>
|
||||
|
||||
class Morse_code
|
||||
{
|
||||
public:
|
||||
Morse_code(std::string filename);
|
||||
std::string encode(const std::string &str);
|
||||
std::string decode(const std::string &str);
|
||||
private:
|
||||
std::map<char, std::string> morse_map;
|
||||
};
|
Loading…
Reference in a new issue