gpt4 book ai didi

字符 C 程序

转载 作者:行者123 更新时间:2023-11-30 21:13:21 24 4
gpt4 key购买 nike

/编写一个程序来检查密码是否包含大写字母、数字和特殊符号。 (我已经提供了我所做的事情,但没有得到所需的输出。需要解释我把它搞砸的地方。)/

#include<stdio.h>
#include<stdlib.h>
#include<ctype.h>

int main()
{
int i;
int tuna;
do
{
printf("Enter a password:%c \n", tuna);
scanf(" %c", &tuna);

} while( tuna != (isupper(tuna), isalpha(tuna), isdigit(tuna)) );


return 0;
}

最佳答案

这是您问题的完整解决方案。

您需要创建一个定义特殊字符的函数。

此外,您需要将密码作为字符串读取,然后将每个字符与您的密码规则进行比较。

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <stdbool.h>
#include <string.h>

bool isspecial(char c)
{
return ((c >= 0x21) && (c <= 0x2F)) ||
((c >= 0x3A) && (c <= 0x40)) ||
((c >= 0x5B) && (c <= 0x60)) ||
((c >= 0x7B) && (c <= 0x7E));
}

int main(void)
{
bool contains_upper = false;
bool contains_digit = false;
bool contains_special = false;

int i = 0;

char tuna[65] = { 0x00 }; // password max length is 64 chars

printf("Enter a password: ");
fgets(tuna, 64, stdin);

tuna[strlen(tuna) - 1] = 0x00;

while (i < strlen(tuna))
{
if (isupper(tuna[i]))
{
contains_upper = true;
}

if (isdigit(tuna[i]))
{
contains_digit = true;
}

if (isspecial(tuna[i]))
{
contains_special = true;
}

i++;
}

if (contains_upper && contains_digit && contains_special)
{
printf("Password is ok\n");
}
else
{
printf("Password is not ok\n");
}

return 0;
}

关于字符 C 程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53898450/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com