c - C在链表中查找字符串

标签 c linked-list

在 if 条件的 while 循环中面临问题, 条件值相等但不进入 if 条件。

void searchList(char name[20])
    {
        char contactName[20];
        strcpy(contactName,name);
        struct node *temp = head;
        printf("\nSearch Contact : \n");
        printf("-------------------\n");
        printf("Name : %s\n",name);
        while (temp != NULL)
        {
            if(temp->name == contactName)
            {
                printf("Contact Name : %s\n",temp->name);
                printf("Contact Number : %s\n", temp->phone);
            }
            temp = temp->next;
        }
    }

最佳答案

您应该使用 string.h 库中的 strcmp 函数来比较字符串:

 #include <string.h>

 ...

 if (strcmp(temp->name, contactName) == 0) {
     ...
 }

在此处查看更多信息 https://stackoverflow.com/a/8004250/492620

关于c - C在链表中查找字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45273207/

相关文章:

c - 是否可以使用字符串中的名称定义变量

java - Java中递归对LinkList进行合并排序

c - 使用指向链表中下一个节点的指针访问 isuue 的数据

java - 有人可以告诉我我做错了什么吗?通过 LinkedList 进行计数和循环

c++ - 排序链表的方式之间的区别c++

c - C 中 main() 函数和其他用户定义函数有什么区别?

c - 如何使用 scanf 读取空格?

c - malloc问题和内存堆

arrays - Perl:使用 'splice()' VS 链表插入数组的性能

c - 动态内存分配函数 - Malloc 和 Free