另外在正常的参数有效性检查之外,还可以使用assert断言检查,用作调试,但是不能简单的用assert来代替参数检查。
C语言代码和运行结果如下:
输出符合要求,望采纳~
附源码:
#include <stdio.h>
#include <ctype.h>
int main() {
int i, upper, lower, digit, punct
char s[13]// 保存输入的密码
while (1) {
printf("请输入密码(含大写、小写、数字和标点字符):\n")
scanf("%s", s)
i = upper = lower = digit = punct = 0
while (s[i] != ' if (isupper(s[i]) >0) upper++') {
else if (islower(s[i]) >0) lower++
else if (isdigit(s[i]) >0) digit++
else if (ispunct(s[i]) >0) punct++
i++
}
if (upper == 0 || lower == 0 || digit == 0 || punct == 0)
printf("密码不合规,请重新设置\n")
else {
printf("设置密码成功!\n")
break
}
}
return 0
}
#include <stdio.h>int main(int argc,char *argv[]){
int y,m,d,c[12]={31,28,31,30,31,30,31,31,30,31,30,31}
printf("Input y, m & d...\n")
while(1){
scanf("%d%d%d",&y,&m,&d)
c[1]=28+(y%4==0 && y%100 || y%400==0)
if(m>0 && m<13 && d>0 && d<=c[m-1])
break
printf("Input error, redo: ")
}
printf("Your input is %d-%d-%d\n",y,m,d)
return 0
}