c-如何扫描包含字符和数字的字符串



我正在制作我的第一个"大项目;在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循环,迭代他们的密码,并为您想要检查的每个条件打开一个标志。最后,如果不是所有的标志都打开,你会告诉他们密码不安全。