c语言链表判断会员账号是否已存在
时间: 2023-05-23 09:01:12 浏览: 54
可以使用链表遍历,如果遇到相同的会员账号则说明已存在。具体实现可以参考如下代码:
```C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_ACCOUNT_LEN 32
typedef struct member {
char account[MAX_ACCOUNT_LEN];
struct member *next;
} Member;
int is_member_exist(Member *head, const char *account) {
Member *p;
for (p = head; p != NULL; p = p->next) {
if (strcmp(p->account, account) == 0) {
return 1;
}
}
return 0;
}
int main() {
Member *head = NULL;
Member *p, *q;
// add members
p = (Member*)malloc(sizeof(Member));
strcpy(p->account, "user1");
p->next = NULL;
head = p;
p = (Member*)malloc(sizeof(Member));
strcpy(p->account, "user2");
p->next = NULL;
head->next = p;
p = (Member*)malloc(sizeof(Member));
strcpy(p->account, "user3");
p->next = NULL;
head->next->next = p;
// test if exists
if (is_member_exist(head, "user2")) {
printf("Member exists\n");
} else {
printf("Member does not exist\n");
}
// free memory
for (p = head; p != NULL; ) {
q = p->next;
free(p);
p = q;
}
return 0;
}
```