можно проверить через find введенную сроку в структуре?
Как-то так или нет?
string streets;
cout << "Введите улицу: ";
cin >> streets;
int n = 0;
for (int i = 0; i < size; i++)
{
if (streets.find(arr_Students[i].adress)) {
n++;
}
}
cout << "Количество студентов, живущих на указанном с клавиатуры улице:" << n;
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
Если и arr_Students[i].adress, и streets имеют тип string, то
if (arr_Students[i].adress.find(streets) != string::npos)
{
// Найдено
}
Но если char[] - то тот же if
strstr(arr_Students[i].adress,streets) != NULL
Если, скажем, arr_Students[i].adress - chsr[], а streets - string
strstr(arr_Students[i].adress,streets.c_str()) != NULL
Автор решения: EOF
→ Ссылка
Вам нужно искать улицу в адресе, а Вы ищите адрес в улице. Т.к. arr_Students[i].adress - это массив char, а не string, то нужно создать временную переменную типа string, в которую сохранить arr_Students[i].adress, а потом уже искать:
string streets;
cout << "Введите улицу: ";
cin >> streets;
int n = 0;
string tempAddress;
for (int i = 0; i < size; i++)
{
tempAddress = arr_Students[i].adress;
if (tempAddress.find(street) != string::npos) {
n++;
}
}
cout << "Количество студентов, живущих на указанном с клавиатуры улице:" << n;