안녕하세요 저는 SOS 용 공백으로 구분 된 모스 코드를 예 : *** --- ***
있습니다.문자열 줄에서 각 모스 코드를 읽으십시오
각 모스 부호를 읽을 수있는 사람이 있습니까?
잠시 동안 나는 각 모스 부호를 읽을 필요가있는 각 문자를 읽으므로 모스 부호를 다른 문자로 반환하는 다른 방법으로 변수로 전달할 수 있습니다.
안녕하세요 저는 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 그것은 잘 알려져 있기 때문에. :) 이 예제는 아마도 좋지도 최적화도 권장되지 않습니다. 그것이 당신에게서 더 좋은 생각을 일으킬 것이기를 바라 라.
빠른 답장을 보내 주셔서 감사합니다. 그러나 이미 모스와 관련 영어 편지가 포함 된 트리를 가지고 있습니다. 내 프로그램이 소문자 알파벳 만 인코딩하기 때문에 모스와 대문자 문자열이 있다면. 예를 들어, *** --- *** D *와 같이 출력물이 표시되어야합니다 : sos De 그래서 어떻게 각 모스 부호를 읽고 영어로 변환 할 수 있습니까? –
strtok을 사용하여 문자열을 토큰 화하고 공백 문자를 구분 기호로 사용할 수 있습니다.
표시 할 수 없습니다. –
이 숙제가 있습니까? 있는 경우 태그를 추가하십시오. [this] (http://www.cplusplus.com/forum/general/32210/)에서 btw를 확인하십시오. – demorge
** 당신은 ** 무엇을 시도 했습니까? 왜 실패합니까? – Pierre