用c++写完整的摩斯密码,并且Dev c++可编译运行
时间: 2024-10-29 16:20:20 浏览: 13
摩尔斯密码是一种通过点(.)和横线(-)组合来表示字母、数字和其他字符的编码系统。下面是一个简单的C++程序,用于将输入的文本转换成摩尔斯码并显示结果:
```cpp
#include <iostream>
#include <string>
using namespace std;
// 摩尔斯码字典
const string morseCodeTable[26] = {
".-", "-...", "-.-.", "-..", ".", "..-.", "--.", "....", "..", ".---", "-.-",
".-..", "--", "-.", "---", ".--.", "--.-", ".-.", "...", "-", "..-",...};
const char spaceMorse = MorseSpace;
const string endOfWord = MorseEndOfWord;
// 转换函数
string textToMorse(const string& text) {
string result;
for (char c : text) {
if (isalpha(c)) {
// 筛选出英文字符
result += morseCodeTable[toupper(c) - 'A'] + spaceMorse;
} else if (isdigit(c)) {
// 数字转为ASCII然后对应到摩尔斯码表
result += morseCodeTable['0' + c - '0'] + spaceMorse;
}
}
return result + endOfWord; // 添加单词结束符
}
int main() {
string input;
cout << "请输入要转换的文本: ";
getline(cin, input);
string morseOutput = textToMorse(input);
cout << "摩尔斯码: " << morseOutput << endl;
return 0;
}
```
在这个程序中,我们首先定义了摩尔斯码字典,然后实现了一个`textToMorse`函数,该函数接收输入文本,按字符处理并将每个字符转换为相应的摩尔斯码。`main`函数中从用户那里获取输入并显示摩尔斯码。
注意,这个示例假设你要使用空格分隔单词,而不是在每个字母间插入点和横线。如果你需要精确地按照传统的点和横线形式,你需要调整`textToMorse`函数。
阅读全文