C语言实现typedef struct list_schar data; struct list_s nextlist_t; list_t组成一个链表链表的每个节点存储一部分字符串匹配目标字符串是否存在于链表中函数定义 int find_list_strlist_t list char str; 注意:目标字符串可能部分存在于链表A节点的结尾一部分链表节点B的开始这样也算找到字符串 返回值0 不
以下是实现该功能的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函数中直接创建了链表和目标字符串的数据。实际应用中,可能需要根据具体需求动态创建链表,并根据用户输入来设置目标字符串
原文地址: http://www.cveoy.top/t/topic/h1bq 著作权归作者所有。请勿转载和采集!