これは、ユーザーがメッセージを入力し、メッセージがモールス符号に変換されるという考え方です。私は今日8時間以上働いている宿題です。クラスで真剣に取り組んでいるのは初めてのことです。2つのベクトルを比較するとエラーが出る可能性があります
実行時には、64行目に1つのエラーしか表示されません。エラーが表示されても意味がありません(尋ねられない限り、huuuugeなので含める必要はありません)。私は、originalMessageベクトルとalphaCodeベクトルが異なるベクトル型(文字列&それぞれ)であることが問題であると考えています。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Code
{
private:
vector<char> alphaCode;
vector<string> morseCode;
vector<string> originalMessage;
vector<string> finalMessage;
public:
Code();
void encoder(vector<string> input);
void display();
};
Code::Code():alphaCode(), morseCode(28)
{
//Building alphaCode
for (char c='A'; c<='Z'; c++) alphaCode.push_back(c);
alphaCode.push_back(' ');
alphaCode.push_back('.');
//Building morseCode
morseCode[0] =".-";
morseCode[1] ="-...";
morseCode[2] ="-.-.";
morseCode[3] ="-..";
morseCode[4] =".";
morseCode[5] ="..-.";
morseCode[6] ="--.";
morseCode[7] ="....";
morseCode[8] ="..";
morseCode[9] =".---";
morseCode[10] ="-.-";
morseCode[11] =".-..";
morseCode[12] ="--";
morseCode[13] ="-.";
morseCode[14] ="---";
morseCode[15] =".--.";
morseCode[16] ="--.--";
morseCode[17] =".-.";
morseCode[18] ="...";
morseCode[19] ="-";
morseCode[20] ="..-";
morseCode[21] ="...-";
morseCode[22] =".--";
morseCode[23] ="-..-";
morseCode[24] ="-.--";
morseCode[25] ="--..";
morseCode[26] =".......";
morseCode[27] ="x";
}
void Code::encoder(vector<string> input)
{
originalMessage = input;
for (int i = 0; i < originalMessage.size(); i++)
{
for (int j = 0; j < alphaCode.size(); j++)
{
if (originalMessage[i] == alphaCode[j])
{
finalMessage.push_back(morseCode[j]);
finalMessage.push_back(" ");
}
}
}
}
void Code::display()
{
for (int x; x < finalMessage.size(); x++) cout << finalMessage[x];
}
//------------------------------------------------------------------------------
int main()
{
vector<string> message;
string temp;
cout << "Input:" << endl;
cin >> temp;
message.push_back(temp);
Code c1;
c1.encoder(message);
c1.display();
}
あなたはそれを考え出しました。質問は何ですか?あなたはタイプを混合し、文字列全体を文字と比較しています。これはC++では意味をなさない。 – luk32
申し訳ありませんが、私はまだ初心者です。基本的にこれは割り当てです:http://cse.csusb.edu/murphy/cse202/hw2-2014.html これは少し重いです。 –
@SriniKumar - FWIW、この問題を解決するより良い方法は、 'std :: map'またはルックアップテーブルを使うことです。なぜあなたが正しいコードを見つけるまで線形検索を行うことによって、この問題を解決する最悪の方法を示しているのだろうか? – PaulMcKenzie