2017-07-15 14 views
-6

入力に応じて、月曜日または火曜日のコードを返すようにしようとしています。電話機のキーパッドでは、月曜日の桁は666329で、火曜日の桁は8837329です。したがって、月曜日の桁が読み取られる場合、月曜日は画面に出力され、月曜日の桁が読み取られた場合は月曜日が画面に出力されます。 ifステートメントで提供される数字を使用して、曜日を返すコードを取得するにはどうすればよいですか。動的割り当てにcharを使用する

#include<iostream> 

using namespace std; 

void setKey(char *keyPress); 

int main() 
{ 
    char *keyPress; 

    keyPress = new char[10]; 

    setKey(keyPress); 

    system("pause"); 
    return 0; 
} 

void setKey(char *keyPress) 
{ 
    cout << "Enter the day using the number keypad: "<< endl << endl; 
    cin >> keyPress; 
    cout << endl << endl; 

    if (keyPress == "666329") 
     cout << "Monday" << endl << endl; 
    else if (keyPress == "8837329") 
     cout << "Tuesday" << endl << endl; 
} 
+1

このコードはコンパイルされません。要求する前に実際のコードを表示してください。注:Cの文字列をそのように比較することはできません。 –

+1

あなたの質問は何ですか?また、おそらく良いC++の本を最初に読んでください。このコードには多くの問題があります。 – UnholySheep

+0

あなたは ''を含んでいますので、 'std :: string'を使用してください。あなたがそれを使うならば、新しいものを作る必要もありません。 – StoryTeller

答えて

1

具体的な理由はありませんstd::string? ソリューション、std::stringを使用すると、次のようになります。

#include<iostream> 

using namespace std; 

void setKey(string& keyPress); 

int main() 
{ 
    string keyPress; 
    setKey(keyPress); 
    //rest here 
} 

void setKey(string& keyPress) 
{ 
    cout << "Enter the day using the number keypad: "<< endl << endl; 
    cin >> keyPress; 
    cout << endl << endl; 

    if (keyPress == "666329") 
     cout << "Monday" << endl << endl; 
    else if (keyPress == "8837329") 
     cout << "Tuesday" << endl << endl; 
} 

それでもc-style文字列を使用する場合は、次の関数とそれらを比較する必要があります。 strcmp

また、あなたはあなたの中にメモリリークを持っていますコード。 deleteなしでnewを使用しています。

関連する問題