7-20 检查密码 (15 分)

本题要求你帮助某网站的用户注册模块写一个密码合法性检查的小功能。该网站要求用户设置的密码必须由不少于6个字符组成,并且只能有英文字母、数字和小数点 .,还必须既有字母也有数字。

输入格式:

输入第一行给出一个正整数 N(≤ 100),随后 N 行,每行给出一个用户设置的密码,为不超过 80 个字符的非空字符串,以回车结束。

注意: 题目保证不存在只有小数点的输入。

输出格式:

对每个用户的密码,在一行中输出系统反馈信息,分以下5种:

  • 如果密码合法,输出Your password is wan mei.
  • 如果密码太短,不论合法与否,都输出Your password is tai duan le.
  • 如果密码长度合法,但存在不合法字符,则输出Your password is tai luan le.
  • 如果密码长度合法,但只有字母没有数字,则输出Your password needs shu zi.
  • 如果密码长度合法,但只有数字没有字母,则输出Your password needs zi mu.

输入样例:

5
123s
zheshi.wodepw
1234.5678
WanMei23333
pass*word.6

输出样例:

Your password is tai duan le.
Your password needs shu zi.
Your password needs zi mu.
Your password is wan mei.
Your password is tai luan le.

结尾无空行

#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
    char str[1000];
    int len;
    int i, t, a, b, c, d;
    scanf("%d", &t);
    getchar();
    while(t--)
    {
        a = 0; b = 0; c = 0; d = 0;
        gets(str);
        len = strlen(str);
        if (len < 6)
        {
            printf("Your password is tai duan le.\n");
        }
        else
        {
            for (i = 0; i < len; i++)
            {
                if (isdigit(str[i]))
                    a++;
                else if (isalpha(str[i]))
                    b++;
                else if (str[i] == '.')
                    c++;
                else
                    d++;
            }
            if (d > 0)
                printf("Your password is tai luan le.\n");
            else if (b+c == len)
                printf("Your password needs shu zi.\n");
            else if (a+c == len)
                printf("Your password needs zi mu.\n");
            else
                printf("Your password is wan mei.\n");
        }
    }
    return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个优化的QQ注册页面的HTML代码示例,其中加入了重复密码认证的功能: ```html <!DOCTYPE html> <html> <head> <title>QQ注册</title> <meta charset="UTF-8"> <style> body { background-color: #f7f7f7; font-family: Arial, sans-serif; } h1 { text-align: center; margin-top: 50px; margin-bottom: 30px; } form { background-color: #fff; border-radius: 5px; box-shadow: 0px 0px 10px #ccc; padding: 20px; max-width: 500px; margin: 0 auto; } input[type=text], input[type=password], input[type=email] { width: 100%; padding: 10px; margin-bottom: 15px; border: none; border-radius: 3px; box-shadow: 0px 0px 5px #ccc; } input[type=submit] { background-color: #4CAF50; color: #fff; border: none; padding: 10px 20px; border-radius: 3px; cursor: pointer; } input[type=submit]:hover { background-color: #3e8e41; } .error-message { color: red; font-size: 12px; margin-bottom: 10px; } </style> </head> <body> <h1>QQ注册</h1> <form action="#" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username" required> <label for="password">密码:</label> <input type="password" id="password" name="password" required> <label for="password-confirm">确认密码:</label> <input type="password" id="password-confirm" name="password-confirm" required> <div id="password-match-error" class="error-message"></div> <label for="email">邮箱:</label> <input type="email" id="email" name="email" required> <input type="submit" value="注册" id="submit-button"> </form> <script> // 检查密码是否一致 document.getElementById("password-confirm").addEventListener("input", function() { var password = document.getElementById("password").value; var passwordConfirm = document.getElementById("password-confirm").value; if (password != passwordConfirm) { document.getElementById("password-match-error").innerHTML = "两次输入的密码不一致"; document.getElementById("submit-button").disabled = true; } else { document.getElementById("password-match-error").innerHTML = ""; document.getElementById("submit-button").disabled = false; } }); </script> </body> </html> ``` 在上述代码中,我添加了一个`<input>`元素来接收用户的重复密码,并添加了一个用于显示错误信息的`<div>`元素。然后,在JavaScript代码中,我添加了一个事件监听器,监听用户在重复密码输入框中的输入事件。每次输入事件发生时,JavaScript都会获取密码和重复密码的值,并检查它们是否匹配。如果不匹配,JavaScript将显示错误消息并禁用提交按钮。否则,JavaScript将清除错误消息并启用提交按钮。 这里还有一些其他的优化措施,例如使用`required`属性来确保所有必填字段都被填写,并使用CSS样式美化表单。你可以根据实际需要进行修改和完善。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Knoka705

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值