Поиск элемента в односвязном списке

Уважаемые люди, мнне нужно найти элемент по какому-то критерию в односвязном списке, допустим у меня эту роль играет одна буква, характеризирующая ряд, вот как выглядит данная структура:

struct spis {
    char name[45];
    float sc;
    float cnt;
    double sq;
    struct spis *Next;
};

Дальше я пишу данную функцию и пытаюсь с помощью if найти схожесть, но не понимаю почему это постоянно не выходит, прилагаю функцию ниже:

void Search(struct spis **Begin) {
    struct spis* Current = *Begin, *Previous = *Begin;
    char ask[555];
    cout << "Введите первую букву, по которой вы хотите найти ряд - " << endl;
    cin >> ask;

    while (Current) {
        if (Current -> name == ask) {
            printf("| %-19s |   %-20.2f  | %-12.2f | %-15.2lf |\n", Current -> name, Current -> sc, Current -> cnt, Current -> sq);
        } else {
            cout << "Нет такого ряда" << endl;
        }
        Current = Current -> Next;
    }
}

Не понимаю в чем заключается проблема, прошу вас помочь, заранее благодарен!


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

Автор решения: Harry

Проверка

Current->name == ask

сравнивает указатель Current->name с указателем ask, потому что это у вас строки C (массивы char). Для сравнения содержимого используйте функции типа strcmp

→ Ссылка