私は便宜上、大文字と小文字を区別しない基本的なユーザーインターフェイスを作ろうとしています。これを行うには、文字列を大文字にするコンバータクラスを作成しましたが、問題が発生しました。このクラスを使用した後、main()のif文はコンバーターからのメッセージを解釈するはずですが、元の入力を読み込んだだけで、大文字の入力ではなく、変換された文字列を直接コンバータが、それは私をさせません。C++で文字列変数を返す
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
string response;
//converts responses to upper-case
void convert(string response) {
for (int i = 0; i < response.length(); i++) {
response[i] = toupper(response[i]);
}
}
//main dialogue
int main() {
cout << "How are you?: ";
getline(cin, response);
convert(response);
if (response == "GOOD") {
cout << "Response 1./l";
}
else {
cout << "Response 2./l";
}
}
私はC++に非常に新しいですので、間違いが修正または私は難易度のソリューションを理解しているかのために簡単なものだった場合、私はお詫び申し上げます。
@ John3136できるだけコピーを避けることについての良い点。 – NoseKnowsAll
私はクラスが文字列として識別される可能性があることを認識できませんでした。結局、私はgetline(cin、response)を入れました。私は応答が必要なときはいつもコンバータを呼び出していました。 – Zyxlm
'私はクラスが文字列として識別できるかどうかわかりませんでした。どういう意味ですか?ソフトウェア工学の貧弱な変更を組み合わせて入力しました。実用的な解決策のいくつかのフレーバーがここに表示されていますが、それらをすべて無視していますか? – John3136