用c语言写一段用链表实现登录注册的代码
时间: 2024-05-13 20:20:09 浏览: 25
好的,以下是用C语言链表实现登录注册的代码:
```
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//定义用户结构体
typedef struct User {
char username[20];
char password[20];
struct User *next;
} User;
//定义用户链表头结点
User *head;
//打印菜单
void printMenu() {
printf("\n**********欢迎使用登录注册系统**********\n");
printf("1.注册\n");
printf("2.登录\n");
printf("0.退出\n");
printf("请选择操作:");
}
//判断用户名是否已存在,存在返回1,不存在返回0
int isExistUsername(char *username) {
User *p = head;
while (p != NULL) {
if (strcmp(p->username, username) == 0) {
return 1;
}
p = p->next;
}
return 0;
}
//注册
void registerUser() {
printf("\n**********注册**********\n");
//输入用户名和密码
char username[20], password[20];
printf("请输入用户名(不超过20个字符):");
scanf("%s", username);
if (isExistUsername(username)) {
printf("用户名已存在,请重新输入!\n");
return;
}
printf("请输入密码(不超过20个字符):");
scanf("%s", password);
//创建新用户节点
User *newUser = (User *) malloc(sizeof(User));
strcpy(newUser->username, username);
strcpy(newUser->password, password);
newUser->next = NULL;
//将新用户加入到链表尾部
if (head == NULL) {
head = newUser;
} else {
User *p = head;
while (p->next != NULL) {
p = p->next;
}
p->next = newUser;
}
printf("注册成功!\n");
}
//登录
void loginUser() {
printf("\n**********登录**********\n");
//输入用户名和密码
char username[20], password[20];
printf("请输入用户名:");
scanf("%s", username);
printf("请输入密码:");
scanf("%s", password);
//遍历链表,查找是否有匹配的用户
User *p = head;
while (p != NULL) {
if (strcmp(p->username, username) == 0 && strcmp(p->password, password) == 0) {
printf("登录成功!\n");
return;
}
p = p->next;
}
//没有匹配的用户
printf("用户名或密码错误,登录失败!\n");
}
int main() {
head = NULL;
while (1) {
printMenu();
int choice;
scanf("%d", &choice);
switch (choice) {
case 1:
registerUser();
break;
case 2:
loginUser();
break;
case 0:
printf("谢谢使用,再见!\n");
return 0;
default:
printf("输入有误,请重新选择!\n");
break;
}
}
return 0;
}
```
请注意,本AI只是简单地回答根据您的要求,不具备完整的人工智能,不能像真正的人一样从各种不同的角度对问题进行思考。如果您有其他问题,欢迎随时提出。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)