C - 如何在结构的链表中搜索字符串,不仅首先找到所有出现的字符串



如何在结构的链表中搜索字符串以查找所有出现的不仅首先?
我已经搜索了第一次出现并成功了有人可以帮忙吗?

struct employee{
int code;
char* name[50];
char* phone[20];
char* address[20];
int age;
float salary;
struct employee* next;
struct employee* prev;
};
struct employee* head;
struct employee* tail;
struct employee* find_address (char* name)
 {
    struct employee* temp = head;
    while (temp && strcmp (temp->name, name))
    {
        temp = temp-> next;
    }
return temp;
 }

由于find_address()函数只能返回指向单个employee记录的指针,因此查找所有匹配项的唯一方法是继续调用该函数,直到返回值等于tail

按以下方式更改函数

struct employee * find_address ( const struct employee *begin, const char *name )
{
    while ( begin && strcmp( begin->name, name ) != 0 )
    {
        begin = begin-> next;
    }
    return begin;
}

在这种情况下,您可以在循环中递归使用该函数,直到它返回 NULL。

您还可以编写在列表中移动当前位置的函数advance。例如

struct employee * advance( const struct employee *begin, size_t n )
{
    while ( n-- && begin ) begin = begin->next;
    return begin;
} 

相关内容

  • 没有找到相关文章

最新更新