如何比较两个结构成员的两个字符串的长度?

问题描述 投票:0回答:1

我对C语言很陌生。

我有一个问题,我试图找到名字最长的学生,并从我的链接列表中删除他们。要做到这一点,我需要比较comp *name;对结构的每个成员的长度。

struct birthday{
    char *name;  
    ...
    struct list_head list;
};

LIST_HEAD(birthday_list);

int simple_init(void)
{
struct birthday *person;
    person = kmalloc(sizeof(*person), GFP_KERNEL);
    person->name = "Alicia";
INIT_LIST_HEAD(&person->list);

list_add_tail(&person->list, $birthday_list);

    person = kmalloc(sizeof(*person), GFP_KERNEL);
    person->name = "Ben";
INIT_LIST_HEAD(&person->list);

list_add_tail(&person->list, $birthday_list);
    person = kmalloc(sizeof(*person), GFP_KERNEL);
    person->name = "Dave";
INIT_LIST_HEAD(&person->list);

list_add_tail(&person->list, $birthday_list);
...
struct birthday *ptr;
list_for_each_entry(ptr, &birthday_list, list)
{
    printk(KERN_INFO "Name: %s\n",
    ptr->name);
}
}

我想要的是比较Alicia和Ben,将Alicia存储为较长的名字,比较Alicia和Dave,并从链接列表中删除Alicia节点。我试了很多办法都没有用。如果有人有

c struct linked-list doubly-linked-list
1个回答
0
投票

对于字符串比较,可以尝试 strlen().

size_t strlen ( const char * str );

© www.soinside.com 2019 - 2024. All rights reserved.