作業問題
本帖最后由 caspar1 于 2022-5-4 10:28 编辑試撰寫一函式password() 檢視密碼是否有效。
假設密碼的規則如下:
(1) 必須要有八個字元
(2) 必須只包含英文字母和數字
(3) 必須包含至少有兩個數字◦
請以一程式呼叫此函式,若密碼符合上述規則,則顯示「有效密碼」,否則顯示「無效密碼」。
我不太了解如何將三個條件放入同一個回圈去執行,必須包含八個字元是要如何去打程式 本帖最后由 jhq999 于 2022-5-4 22:47 编辑
char str={0};
scanf("%s",str);
int i=0,numcount=0,other=0;
while(str)
{
if(str>='0'&&str<='9')numcount++;
else if((str>='a'&&str<='z')||(str>='A'&&str<='Z'));
else
{
other=1;
break;
}
i++;
}
if(other||(numcount<2)||(i<8))printf("無效密碼");//这个other也可去掉
else
printf("有效密碼"); jhq999 发表于 2022-5-4 11:34
小弟想問一下,請問other的用途是什麼,我不太理解它放在裡面的用途 本帖最后由 jhq999 于 2022-5-6 06:46 编辑
caspar1 发表于 2022-5-5 17:25
小弟想問一下,請問other的用途是什麼,我不太理解它放在裡面的用途
看有没有除了数字和字母的之外的其他字符,有就让赋值other为1,退出循环,后面判断时other为真时不符合规则
至于注释里为什么可以去掉,如果不需要不符合规则的原因,可以用i<8包含在里面,因为只要用break跳出循环,i肯定小于8 jhq999 发表于 2022-5-6 06:42
看有没有除了数字和字母的之外的其他字符,有就让赋值other为1,退出循环,后面判断时other为真时不符 ...
了解了,謝謝哥
页:
[1]