我正在制作我的第一个"大项目;在C中,我目前正在处理注册/登录部分。我想让用户插入一个有效的密码,让他插入字符和数字(我不确定如果插入的密码不安全,我是否只是想打印一个警告,或者让用户重复插入过程,但现在这并不重要(。密码将是名为"的结构的一部分;用户";。所以,为了做到这一点,我如何扫描由字符和数字组成的输入,比如";hfsk89skh3";??
如果您的目标是检查密码是否同时包含字母和数字,我建议使用isaplha((和isdigit((
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[] = "12abc12";
int alphabet = 0, number = 0, i;
//cycle through every character of the string
for (i = 0; str[i] != ' '; i++)
{
// check for letters (returns 0 if not a letter)
if (isalpha(str[i]) != 0)
alphabet++;
// check for decimal digits (returns 0 if not a digit)
else if (isdigit(str[i]) != 0)
number++;
}
//check if you have at least one number and 5 letters
if((alphabet>5)&&(number>0)){
printf("Valid Password")
}
return 0;
}
在C中,字符串可以包含字母数字字符,因此如果您扫描字符串并输入该值("hfsk89skh3"(,应该不会有问题
您可以执行一个简单的for循环,迭代他们的密码,并为您想要检查的每个条件打开一个标志。最后,如果不是所有的标志都打开,你会告诉他们密码不安全。