gpt4 book ai didi

c - C 446 中的多个 if 语句

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

有人知道问题所在吗?它仅检测第一个字符。我不知道问题所在,请帮忙。我找不到答案。

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

int main()
{
int password;

printf("Enter your password. \n");
printf("Password must contain an uppercase letter, a lowercase letter, and a number. \n");
scanf("%c", &password);

if( isupper(password) ){
printf("Password meets requirement 1. \n");
}
if( islower(password) ){
printf("Password meets requirement 2. \n");
}
if( isdigit(password) ){
printf("Password meets requirement 3. \n");
}

return 0;
}

最佳答案

变量password是单个实体,它只能存储单个字符。您还一个字符。 This scanf (and family) reference可能有帮助。

如果要读取多个字符,则需要使用"%s"格式,并且还需要一个字符数组。喜欢

char password[32];
scanf("%31s", password);

"%31s" 格式告诉 scanf读取最多 31 个字符并存储为以零结尾的字符串(因此仅读取最多 31 个字符以存储在 32 个字符的数组中)。

<小时/>

然后对于其他代码,您需要使用循环来迭代字符串。在这里,当需要知道字符串的结尾时,您有两种选择:要么使用 strlen获取字符串的长度,或者依赖于 C 中的字符串以零结尾(字符 '\0')这一事实。

关于c - C 446 中的多个 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33408209/

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