このプログラムは、人の名前と電話番号を保持する10個の文字列オブジェクトの配列を持つことになっています。配列に検索する名前または部分名を入力するようにユーザーに求め、入力された文字列と一致する配列内のすべての項目を表示する必要があります。コードの実行に問題があります。Cの文字列と初期化された文字列の配列の比較
#include "stdafx.h"
#include <iostream>
#include <cstring>
#include <string>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
const int size = 50;
char name[50];
int count;
char list[] = {"Becky Warren, 555-1223",
"Joe Looney, 555-0097",
"Geri Palmer, 555-8787",
"Lynn Presnell, 555-8878",
"Holly Gaddis, 555-8878",
"Sam Wiggins, 555-0998",
"Bob Kain, 555-8712",
"Tim Haynes, 555-7676",
"Warren Gaddis, 555-9037",
"Jean James, 555-4939",
"Ron Palmer, 555-2783"};
cout << "Enter a name or partial name: " << endl;
cin.getline(name, size);
cin.ignore();
for(count = 0; count < 10 ; count++){
if(strstr(list[count], name)){
cout << list[count];
}
}
cin.get();
return 0;
}
あなたはどのような問題を抱えている。同様に、あなたのような何かが、
std::find_if
を使うのでしょうか? –まず、配列に11個のエントリがあります。第2に、 'strstr'は大文字と小文字を区別するので、' 'Becky''は' 'becky''と等しくありません。 –
C++プログラムでC文字列を使用しているのはなぜですか? –