Сравнение строк в C++

101
21 ноября 2021, 17:30

Задали сделать массив структур, в котором ведомости про поезда (по названиям переменных думаю всё понятно). Нужно чтобы программа выводила время отправления поездов + цену билетов на них при вводе пользователем города.

Не получается сравнить строку введённую пользователем с названием города в 21 строке (несовместимые типы операндов ("char" и "char *"))

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
#include <iostream>
#include <windows.h>
using namespace std;
struct trains {
    char number[3];
    char destination[100];
    int time;
    float price;
};
void show(trains arr[], int, char);
void show(trains arr[], int n, char city) {
    for (int i = 0; i < n; i++) {
        char* gets (char *city);
        if (city == arr[i].destination) {
            cout << "Time:\t" << arr[i].time << '\n' << "Price:\t" << arr[i].price << endl;
        }
    }
}
int main()
{
    const int n = 5;
    char city[100];
    trains arr[n];
    for (int i = 0; i < n; i++) {
        cout << "Train number: " << '\t\n';
        cin.getline(arr[i].number,3);
        cout << "Destination: " << '\t\n';
        cin.getline(arr[i].destination, 100);
        cout << "Time: " << '\t\n';
        cin >> arr[i].time;
        cout << "Price: " << '\t\n';
        cin >> arr[i].price;
    }
    system("pause");
    return 0;
}
Answer 1

Ну ошибка же явно говорит, в чем проблема: вы сравниваете символ типа char с указателем на char. Если у вас тег c++, почему бы не использовать везде std::string, заведомо не получая таких ошибок?

READ ALSO
Поиск по нескольким полям класса

Поиск по нескольким полям класса

Подскажите, пожалуйста, статьи, примеры кода и тп

105
Параллельное программирование с++,openmp

Параллельное программирование с++,openmp

Задание было, написать программу и распараллелить ее, само задание звучит так : Циклическим сдвигом строки s называется строка sksk+1sk+2…s|s|s1s2…sk-1...

96
Как сделать скролл картинок по горизонтали?

Как сделать скролл картинок по горизонтали?

Как сделать, что бы картинки располагались как на примере

255