C语言中如何实现存放的账号密码和键盘输入的账号密码作比较
在C语言中,可以使用结构体和数组来实现存放账号密码的功能,并使用strcmp函数来比较输入的账号密码与已存储的账号密码是否相等。下面是一个示例代码:
#include <stdio.h>
#include <string.h>
#define MAX_ACCOUNTS 100
#define MAX_LENGTH 20
typedef struct {
char account[MAX_LENGTH];
char password[MAX_LENGTH];
} Account;
int main() {
Account accounts[MAX_ACCOUNTS];
int numAccounts = 0;
// 存储账号密码
strcpy(accounts[numAccounts].account, "admin");
strcpy(accounts[numAccounts].password, "admin123");
numAccounts++;
// 从键盘输入账号密码
char inputAccount[MAX_LENGTH];
char inputPassword[MAX_LENGTH];
printf("请输入账号:");
scanf("%s", inputAccount);
printf("请输入密码:");
scanf("%s", inputPassword);
// 比较输入的账号密码与已存储的账号密码
int i;
for (i = 0; i < numAccounts; i++) {
if (strcmp(inputAccount, accounts[i].account) == 0 && strcmp(inputPassword, accounts[i].password) == 0) {
printf("登录成功\n");
break;
}
}
if (i == numAccounts) {
printf("账号密码错误\n");
}
return 0;
}
在上述代码中,首先定义了一个结构体Account来存储账号和密码。然后定义了一个包含多个Account类型的数组accounts来存储多个账号密码。通过numAccounts变量来记录存储的账号密码数量。
在main函数中,首先存储了一个账号密码admin/admin123。然后从键盘输入账号和密码,并使用scanf函数将输入的字符串存储到inputAccount和inputPassword数组中。
接下来使用strcmp函数来比较输入的账号密码与已存储的账号密码。通过遍历accounts数组,逐一比较inputAccount和accounts[i].account、inputPassword和accounts[i].password的值是否相等。若账号密码匹配成功,则输出"登录成功",否则输出"账号密码错误"。
注意,上述代码只是一个简单示例,实际应用中,为了提高安全性,应该使用加密算法对密码进行加密存储,并且注意防止缓冲区溢出等安全问题
原文地址: http://www.cveoy.top/t/topic/izI3 著作权归作者所有。请勿转载和采集!