C语言中如何运用链表实现存放的账号密码和键盘输入的账号密码作比较
在C语言中,可以使用链表来存放账号密码,然后使用键盘输入的账号密码与链表中的账号密码进行比较。
首先,需要定义一个链表节点的结构,包含账号和密码两个字段。可以使用如下的结构体定义:
typedef struct Node {
char account[20];
char password[20];
struct Node* next;
} Node;
然后,可以实现一个函数来创建新的链表节点并添加到链表中:
Node* createNode(char account[], char password[]) {
Node* newNode = (Node*)malloc(sizeof(Node));
strncpy(newNode->account, account, sizeof(newNode->account));
strncpy(newNode->password, password, sizeof(newNode->password));
newNode->next = NULL;
return newNode;
}
void addNode(Node** head, char account[], char password[]) {
Node* newNode = createNode(account, password);
if (*head == NULL) {
*head = newNode;
} else {
Node* temp = *head;
while (temp->next != NULL) {
temp = temp->next;
}
temp->next = newNode;
}
}
接下来,可以实现一个函数来比较键盘输入的账号密码与链表中的账号密码:
int compareCredentials(Node* head, char account[], char password[]) {
Node* temp = head;
while (temp != NULL) {
if (strcmp(temp->account, account) == 0 && strcmp(temp->password, password) == 0) {
return 1; // 账号密码匹配成功
}
temp = temp->next;
}
return 0; // 账号密码匹配失败
}
最后,可以使用这些函数来实现账号密码的比较。例如:
int main() {
Node* head = NULL;
// 添加链表节点
addNode(&head, "user1", "password1");
addNode(&head, "user2", "password2");
addNode(&head, "user3", "password3");
// 从键盘输入账号密码
char account[20];
char password[20];
printf("请输入账号:");
scanf("%s", account);
printf("请输入密码:");
scanf("%s", password);
// 比较账号密码
int result = compareCredentials(head, account, password);
if (result) {
printf("账号密码匹配成功\n");
} else {
printf("账号密码匹配失败\n");
}
return 0;
}
在上述代码中,首先创建一个链表,然后从键盘输入账号密码,最后调用比较函数进行账号密码的比较,并输出结果
原文地址: https://www.cveoy.top/t/topic/izLt 著作权归作者所有。请勿转载和采集!