从字符串中读取每个莫尔斯电码
Read each morse code from a string line
嗨,我有用空格分隔的字符串莫尔斯电码,例如 SOS 的*** --- ***
.
谁能帮我读懂每个摩尔斯电码?
目前,我正在读取每个字符,我需要读取每个莫尔斯电码,以便我可以将莫尔斯电码作为变量传递给返回字母字符的其他方法。
您可以将莫尔斯电码及其等效值存储在地图中,在空格上拆分莫尔斯字符串,遍历这些元素并从映射中检索结果值(并将它们连接在一起)以获得最终结果
这是一个示例,显示解码的 SOS"... --- ..."
#include <string>
#include <cstring>
#include <iostream>
#include <map>
#include <vector>
using namespace std;
vector<string> SplitString (string aString);
vector<string> SplitString (string aString){
vector<string> vec;
char * cstr, *p;
string str = aString;
cstr = new char [str.size()+1];
strcpy (cstr, str.c_str());
p=strtok (cstr," ");
while (p!=NULL){
vec.push_back(p);
p = strtok(NULL," ");
}
delete[] cstr;
return vec;
}
int main(){
map<string,string> m;
m["..."] = "S";
m["---"] = "0";
vector<string> v;
string sentence = "... --- ...";
v = SplitString(sentence);
vector<string>::iterator it;
cout << "Our morse (" << sentence << ") decoded to: ";
for ( it = v.begin() ; it < v.end(); it++ ){
cout << m[*it];
}
cout << endl;
return 0;
}
你可以填写其他莫尔斯电码,会花我太多时间,对不起,使用了SOS,因为它是如此知名。 :)这个例子也可能不是很好,也不是优化也不是推荐,我已经有好几年没有接近 c++了。希望它能激发你一些更好的想法。
您可以使用 strtok 标记字符串并使用空格字符作为分隔符。
相关文章:
- 如何使用Luacneneneba API正确读取字符串和表参数
- 为什么 sscanf 无法从一个字符串中读取uint64_t和字符?
- 如何从字符串C++读取多个整数
- 使用字符串读取的字符串
- 从文件到字符串读取并传递到功能
- C++ cin 将字符串读取到 int 类型中返回 0
- 使用CIN和/或字符串读取带有混合输入的文本文件
- 将两个字符串作为一个字符串读取
- 如何将WCP 1252字符串读取为std::tstring
- 如何将字符串读取为字符串向量或将整数读取为整数向量
- 将一系列字符串读取到char数组中
- 如何在 c++ 中将文件中的段落作为单个字符串读取
- 从 txt 文件中将后缀表达式作为字符串读取
- C++银行项目;如何将一组字符串读取为单独的浮点数并添加它们
- 在 c++ 中循环字符串读取器
- 将字符串读取为命令行参数C++
- 如何在QT中使用QDomDocument对象将字符串读取为XML
- 使用Matio库将.mat文件中的字符串读取到C++中
- 作为字符串读取第一列数据文件
- 如何在字符串读取完成时停止c++的recv() ?