gpt4 book ai didi

c - 如何确保密码的长度没有限制?

转载 作者:太空宇宙 更新时间:2023-11-04 01:45:47 24 4
gpt4 key购买 nike

我用 C 编写了一段代码,其中用户必须在其密码中包含一个“$”、一个数字和一个大写数字才能使其有效,但我不知道该怎么做才能使密码有效只要他们想要,我就不必写 char password[100000000000] 或类似的东西。

int something = 100;
char password[something];
int index = 0;
int x = 0;
int y = 0;
int z = 0;

printf("Enter Password: "); //Mike$4
scanf("%s", password);

do{ // If index is strlen, then we checked every char of pw
// Ex. Password is length 6, then index 0 - 5 will be checked
if(index == strlen(password) && x>0 && y>0 && z>0){
printf("Good password!");
break;
}
if(index == strlen(password) && (x==0 || y==0 || z==0)){
printf("BAD PASSWORD");
break;
}

if(isupper(password[index]) || isdigit(password[index]) ||
password[index] == '$'){

if(isupper(password[index])){
x++; index++;
continue;}
if(isdigit(password[index])){
y++; index++;
continue;}
if(password[index] == '$'){
z++; index++;
continue;}
}else{index++;
continue;
}
}while(index <= strlen(password));

这是我的代码。谢谢!

最佳答案

如果你真的想要无限长度(虽然它的实用性有点值得怀疑——最好选择一个大的限制并完成它),你将不得不放弃 scanf对于像 fgets 这样的东西,它允许您指定要读取的字符数,然后以 block 的形式读取输入。您可能希望使用易于增长的结构(如略小于页面大小的字符串缓冲区的链接列表)来读取这些 block ,然后在您点击后为最终字符串分配一个缓冲区输入中的换行符(或 EOF,取决于您所需的语义)。

关于c - 如何确保密码的长度没有限制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54014894/

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