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

How do I scan a string containing characters and numbers?

我正在用 C 编写我的第一个“大项目”,目前我正在处理 registration/login 部分。我想让用户插入一个有效的密码,要求他插入字符和数字(我不确定如果插入的密码不安全我只是想打印警告还是让用户重复插入过程但那不是现在很重要)。密码将是名为“用户”的结构的一部分。那么,为了做到这一点,我该如何扫描由字符和数字组成的输入,例如“hfsk89skh3”??

在 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] != '[=10=]'; 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;
}

您可以执行一个简单的 for 循环来遍历他们的密码,并为您要检查的每个条件打开一个标志。然后在最后,如果不是所有的标志都打开,你告诉他们密码不安全。