2016-05-15 4 views
0

私は文字列のリストを持つ検索配列関数を作成しようとしています。ユーザー入力を受け取ります。次に、ユーザー入力を配列内の文字列と比較し、入力の正確な順序で任意の文字列に一致するものを出力します。私はどこから始めるべきかわからない。ようなので:C++ユーザー入力を厳密な順序で文字列のリストと比較するにはどうすればよいですか?

アレイ: "この"、 "ある"、 "A"、 "テスト"

ユーザ入力: "T"

出力が "この" と "テスト" でなければなりませんそれが唯一の完全一致を検索し、現時点で

string arr[6] = {"hello", "this", "is", "a", "test", "string"}; 
vector<string> words; 
for (int i=0; i<5; i++) { 
    if (a.find(arr[i]) != string::npos) { 
     words.push_back(arr[i]); 
    } 
} 

for (int i=0; i<words.size(); i++) { 
    cout << words[i] << endl; 
} 

は、これは私がこれまで持っているものです。上記のシナリオにどうすればいいですか?

+0

'比較'と '一致'とは、検索された文字列が配列要素の接頭辞であることを意味します。 – bipll

+1

_「どこから始めたら良いかわかりません」_おそらくコードを入力して試してみるのが最も良いでしょう。 –

+1

ちょうど開始;あなたが何かにこだわると戻ってくる。 (そして 'char *'ではなく 'std :: string'を使用してください。) –

答えて

1

変更この

if (a.find(arr[i]) != string::npos) 

あなたは、文字列1のリストでユーザーの文字列を検索します一つ。

+0

これはありがとう – nanjero05

0

投稿したコードには、if (a.find(arr[i]) != string::npos) {という論理エラーがあります。入力文字列を検索して配列の単語を検索しますが、入力文字列は配列の単語で検索したい理解した)。

それとは別に

、私はむしろstd::arrayfor eachループを使用します。

if (arr[i].find(a) != string::npos) 

関連する問題