用c语言编写一个登录注册系统
时间: 2023-12-06 12:05:45 浏览: 36
好的,下面是一个简单的登录注册系统的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX_USERS 10
#define MAX_NAME_LENGTH 20
#define MAX_PASSWORD_LENGTH 20
// 定义用户结构体
typedef struct {
char name[MAX_NAME_LENGTH];
char password[MAX_PASSWORD_LENGTH];
} User;
// 定义全局变量
User users[MAX_USERS];
int num_users = 0;
// 注册函数
void register_user() {
if (num_users >= MAX_USERS) {
printf("注册失败,用户数已达到上限!\n");
return;
}
User new_user;
printf("请输入用户名(不超过%d个字符):", MAX_NAME_LENGTH);
scanf("%s", new_user.name);
// 判断用户名是否重复
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].name, new_user.name) == 0) {
printf("注册失败,该用户名已被使用!\n");
return;
}
}
printf("请输入密码(不超过%d个字符):", MAX_PASSWORD_LENGTH);
scanf("%s", new_user.password);
// 添加新用户
users[num_users] = new_user;
num_users++;
printf("注册成功!\n");
}
// 登录函数
void login() {
char name[MAX_NAME_LENGTH];
char password[MAX_PASSWORD_LENGTH];
printf("请输入用户名:");
scanf("%s", name);
printf("请输入密码:");
scanf("%s", password);
// 遍历所有用户,查找匹配的用户名和密码
for (int i = 0; i < num_users; i++) {
if (strcmp(users[i].name, name) == 0 && strcmp(users[i].password, password) == 0) {
printf("登录成功!\n");
return;
}
}
printf("登录失败,用户名或密码错误!\n");
}
int main() {
int choice;
while (1) {
printf("1.注册\n");
printf("2.登录\n");
printf("3.退出\n");
printf("请选择:");
scanf("%d", &choice);
switch (choice) {
case 1:
register_user();
break;
case 2:
login();
break;
case 3:
printf("再见!\n");
exit(0);
default:
printf("无效的选择!\n");
}
}
return 0;
}
```
这段代码实现了一个简单的登录注册系统,具有注册新用户和用户登录的功能。用户信息储存在一个全局的数组中,使用了结构体来存储每个用户的用户名和密码。用户注册时会检查是否已达到最大用户数和用户名是否重复,登录时会遍历数组查找匹配的用户名和密码。运行程序后,用户可以通过输入数字选择注册、登录或退出。