对输入的密码进行加密。 请从键盘输入一个8位密码。该密码可以包含空格键,但不能包含回车键。输入的密码必须包含大写字母、小写字母、数字和特殊符号。 用c++编写
时间: 2023-05-28 09:05:31 浏览: 175
F1-key-down.rar_Labview键盘输入_labview键盘控制_密码键盘_键盘 labview
5星 · 资源好评率100%
#include <stdio.h>
#include <string.h>
// 定义密码最大长度
#define MAX_LEN 8
// 定义特殊符号的数组
char specialSymbols[] = "!@#$%^&*()_+-=[]{}|;':\",./<>?";
int main() {
char password[MAX_LEN + 1]; // 定义密码数组,加1是为了存储字符串末尾的'\0'
int upper = 0, lower = 0, digit = 0, special = 0; // 定义4个变量分别记录大写字母、小写字母、数字、特殊符号的出现次数
int i, j;
printf("请输入8位密码:");
fgets(password, MAX_LEN + 1, stdin); // 从标准输入读取密码,使用fgets函数可以避免输入回车后直接结束程序的问题
// 检查密码是否符合要求
if (strlen(password) != MAX_LEN) {
printf("输入的密码长度不正确!\n");
return 0;
}
for (i = 0; i < MAX_LEN; i++) {
// 检查是否包含空格键
if (password[i] == ' ') {
printf("输入的密码包含空格键!\n");
return 0;
}
// 检查是否包含大写字母、小写字母、数字、特殊符号
if (password[i] >= 'A' && password[i] <= 'Z') {
upper++;
} else if (password[i] >= 'a' && password[i] <= 'z') {
lower++;
} else if (password[i] >= '0' && password[i] <= '9') {
digit++;
} else {
for (j = 0; j < strlen(specialSymbols); j++) {
if (password[i] == specialSymbols[j]) {
special++;
break;
}
}
}
}
if (upper == 0 || lower == 0 || digit == 0 || special == 0) {
printf("输入的密码必须包含大写字母、小写字母、数字和特殊符号!\n");
return 0;
}
// 对密码进行加密
for (i = 0; i < MAX_LEN; i++) {
password[i] += 3; // 将每个字符的ASCII码值加3
if (password[i] > 'z') { // 如果加3后的字符超出了小写字母的范围,则回到'A'重新开始计算
password[i] = password[i] - 'z' + 'a' - 1;
}
}
printf("加密后的密码为:%s\n", password);
return 0;
}
阅读全文