Составить список стран-экспортёров, в которые экспортируется заданный товар, и общий объем его экспорта. С++

Дан файл Товар, содержащий сведения об экспортируемых товарах. Каждая запись представляет собой структуру с четырьмя полями: Экспортёр, импортер, объем поставляемых партий в штуках, наименование товаров. Составить список стран-экспортёров, в которые экспортируется заданный товар, и общий объем его экспорта.

Не могу вывести по заданному товару страну-экспортера и количество экспорта.

#include <iostream>
#include <string>
using namespace std;
int main()
{
struct info
{
char exporter[10];// экспортёр
char importer[10];// импортёр 
int k;// кол-во
char tovar[20];// товар
};
struct info Export[] ={// изначально заполненная структура с инфой
    {"USA", "Russia", 24, "Cola"},
    {"China", "England", 64, "Tea"},
    {"Italy", "France", 50, "Pasta"},
    {"Canada", "USA", 32, "Fish"},
    {"Korea", "China", 99, "Doshik"},
};
cout<<"Страны-экспортёры и количество товара:"<<"\n";
for (int i = 0; i < 5; i++)// вывод инфы
{
if (Export[i].tovar == "Tea")
cout<<Export[i].exporter<<" - "<<Export[i].k<<"\n";  
}
cout<<"\n";
system("pause");
return 0;
}

Ответы (1 шт):

Автор решения: AR Hovsepyan

Вы пытаетесь сравнивать массивы оператором ==, которого, как и других операторов для массивов(имя массива это не объект_массив, а имя первого символа массива), не существует. Замените условие if (Export[i].tovar == "Tea") на if (!strcmp( Export[i].tovar,"Tea")) , потому что ваше условие никогда не выполнится, поскольку это есть сравнение адресов первых начала двух разных массивов, которые не могут располагаться в том же месте в памяти.

→ Ссылка