我正在构建一个构建/跟踪电影数据库的链表。在我的搜索函数中,我有一个 if 语句,用于检查指向电影标题的指针是否等于搜索函数中输入的值。但是,即使值彼此相等,if 语句也不会运行。我不想包含我的所有代码,所以我包含了 if 语句的输入字段和 if 语句所在的循环。我已经验证了movieTitle
和ptr->title
的值在词法上是相同的。
PTR>标题输入
printf("Name of the Movie: ");
scanf(" %[^n]%*c", m.title);
strcpy(ptr->title, m.title);
影片标题输入
printf("Name of the Movie: ");
scanf(" %[^n]%*c", movieTitle);
如果语句
while (ptr != NULL)
{
if (movieTitle == ptr->title)
{
printf("Year: %dn", ptr->year);
printf("Rating: %hhun", ptr->rating);
found = true;
break;
}
else
{
tmp = ptr;
ptr = ptr->next;
}
}
你不能使用 == 来比较 C 中的两个字符串
使用 strcmp
像这样的东西
if (strcmp( string1, string2) == 0)