c语言

c语言系统用户名不重复怎么设置

小亿
147
2023-09-18 17:10:51
栏目: 编程语言

在C语言中,可以使用以下方法来设置系统用户名不重复:

  1. 使用结构体数组:创建一个结构体数组,每个结构体包含用户名和密码等信息。在用户注册时,遍历数组检查是否已存在相同的用户名,如果存在则提示用户重新选择用户名;如果不存在,则将新用户信息添加到数组中。
#include <stdio.h>
#include <string.h>
#define MAX_USERS 100
struct User {
char username[20];
char password[20];
};
int main() {
struct User users[MAX_USERS];
int numUsers = 0;
// 注册新用户
printf("请输入用户名:");
char newUsername[20];
scanf("%s", newUsername);
for (int i = 0; i < numUsers; i++) {
if (strcmp(users[i].username, newUsername) == 0) {
printf("用户名已存在,请重新选择。\n");
return 0;
}
}
strcpy(users[numUsers].username, newUsername);
// 输入密码等其他信息...
numUsers++;
return 0;
}
  1. 使用链表:创建一个链表,每个节点包含用户名和密码等信息。在用户注册时,遍历链表检查是否已存在相同的用户名,如果存在则提示用户重新选择用户名;如果不存在,则创建一个新节点,并将新用户信息添加到链表中。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct User {
char username[20];
char password[20];
struct User* next;
};
int main() {
struct User* head = NULL;
struct User* curr = NULL;
// 注册新用户
printf("请输入用户名:");
char newUsername[20];
scanf("%s", newUsername);
curr = head;
while (curr != NULL) {
if (strcmp(curr->username, newUsername) == 0) {
printf("用户名已存在,请重新选择。\n");
return 0;
}
curr = curr->next;
}
struct User* newUser = (struct User*)malloc(sizeof(struct User));
strcpy(newUser->username, newUsername);
// 输入密码等其他信息...
newUser->next = head;
head = newUser;
return 0;
}

这些方法都是基于数组或链表来存储用户信息,并通过循环遍历来检查用户名是否重复。根据实际需求,选择合适的数据结构来存储和管理用户信息。

0
看了该问题的人还看了