以下是实现该功能的 C语言代码:

#include <stdio.h>
#include <string.h>

typedef struct list_s {
    char *data;
    struct list_s *next;
} list_t;

int find_list_str(list_t *list, char *str) {
    while (list != NULL) {
        if (strstr(list->data, str) != NULL) {
            return 1; // 目标字符串存在于链表节点中
        }
        list = list->next;
    }
    return 0; // 目标字符串不存在于链表中
}

int main() {
    // 创建链表
    list_t node1, node2, node3;
    char data1[] = "Hello";
    char data2[] = "World";
    char data3[] = "C Programming";
    node1.data = data1;
    node1.next = &node2;
    node2.data = data2;
    node2.next = &node3;
    node3.data = data3;
    node3.next = NULL;

    // 测试find_list_str函数
    char targetStr[] = "loW";
    int result = find_list_str(&node1, targetStr);
    if (result == 1) {
        printf("目标字符串存在于链表中\n");
    } else {
        printf("目标字符串不存在于链表中\n");
    }

    return 0;
}

在上述代码中,我们首先定义了一个 list_t 结构体,该结构体包含一个 data 成员用于存储字符串,以及一个 next 成员用于指向下一个链表节点。然后,我们实现了 find_list_str 函数来搜索目标字符串是否存在于链表中。

find_list_str 函数中,我们使用了 strstr 函数来判断目标字符串是否存在于链表节点的数据中。如果找到了目标字符串,则返回 1,表示目标字符串存在于链表中。如果遍历完整个链表都没有找到目标字符串,则返回 0,表示目标字符串不存在于链表中。

main 函数中,我们创建了一个包含 3 个节点的链表,并调用 find_list_str 函数来搜索目标字符串是否存在于链表中。在这个例子中,我们搜索的目标字符串是 'loW',该字符串既存在于第一个节点的结尾,也存在于第二个节点的开头。因此,find_list_str 函数应该返回 1,表示目标字符串存在于链表中。

注意:为了简化示例,我们在 main 函数中直接创建了链表和目标字符串的数据。实际应用中,可能需要根据具体需求动态创建链表,并根据用户输入来设置目标字符串。


原文地址: https://www.cveoy.top/t/topic/pKeu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录