2014-11-21 1 views
-1

Я создаю связанный список, который создает/отслеживает базу данных фильмов. В моей функции поиска у меня есть оператор if, который проверяет, совпадает ли указатель на заголовок фильма с введенным значением в функции поиска. Однако оператор if не работает, даже если значения равны друг другу. Я не хотел включать весь мой код, поэтому я включил оба поля ввода для оператора if и цикл, в котором находится оператор if. Я подтвердил, что значения movieTitle и ptr->title лексически одинаковы.Итерация по связанному списку, если оператор не работает

ptr-> название вход

printf("Name of the Movie: "); 
scanf(" %[^\n]%*c", m.title); 
strcpy(ptr->title, m.title); 

MovieTitle вход

printf("Name of the Movie: "); 
scanf(" %[^\n]%*c", movieTitle); 

Если заявление

while (ptr != NULL) 
{  
    if (movieTitle == ptr->title) 
    { 
     printf("Year: %d\n", ptr->year); 
     printf("Rating: %hhu\n", ptr->rating); 
     found = true; 
     break; 
    } 
    else 
    { 
     tmp = ptr; 
     ptr = ptr->next; 
    } 
} 
+1

Что значит "не проверяет"? Я не могу сделать головы или хвосты того, что должно означать в этом контексте. –

+0

@AlexD Я пробовал 'stricmp', однако нет чувствительности к регистру. –

+0

@ cpmgrat Вы хотите, чтобы случай сенсибилита сравнения или нет? есть функции для обоих. –

ответ

3

Вы не можете использовать == для сравнить две строки в C

использованием STRCMP

Что-то вроде этого

if (strcmp(string1, string2) == 0) 
+0

Спасибо, это сработало как шарм – asdf

+0

@BadKarma, добро пожаловать. – gmlacrosse

Смежные вопросы