2012-05-11 8 views
1

ポイントやその他の整数で検索するように変更すると機能しますが、名前と国で検索する必要があります。この関数は、すでにデータが入っている配列をチェックしています。名前と国で検索する機能

void search (competitor competitors[], int number) 
{ 
if(number==0) 
{ 
    cout<<"\n Array is empty!!!\n"; 
    return; 
} 

char country[50]; 
char name[50]; 
char choice; 
bool flag; 

do{ 
    cout << "\n\n Enter country: " << endl; 
    cin >> country; 
    cout << " Enter name: " << endl; 
    cin >> name; 

    flag = false; 

    for(int i=0; i<number; i++) 
    { 
     if(country==competitors[i].country && name==competitors[i].name) 
     { 
      count << " Competitor found!" << endl; 
     } 
    } 
    if (flag == false) 

    cout << " Want to search again(Y/N)?: "; 
    cin >> choice; 

}while(choice == 'Y' || choice == 'y'); 

}

+0

「競合他社[i] .country」と「競合他社[i] .name」のタイプを確認できますか? – hmjd

+1

等価演算子の不正使用以外に、なぜユーザーが入力したデータに対してC++で生のchar配列を使用するのでしょうか?単に 'std :: string'を使用すれば、バッファオーバーフローを修正して、実際に文字列の内容を比較する便利な等価演算子を持つことになります。 – smocking

答えて

2

私はcompetitors[i].country (name)char[]であると仮定しています。

==を使用してchar[]アレイを比較することはできません(コンテンツではなくアレイのベースアドレスを比較します)。strcmp()である必要があります。または、これはC++なのでchar[]の代わりにstd::stringを使用し、==を使用します。

+0

うん、それは 'char []'だった。ありがとうございました。私はそれらを比較できないとは考えていませんでした。 –