c语言中什么情况需要检查函数参数的有效性?

Python019

c语言中什么情况需要检查函数参数的有效性?,第1张

一般来说是对外提供的接口一定要检查参数有效性;模块内部使用的接口要求稍低,但为了多人合作和方便后人接手,最好也加上参数有效性检查,既可以检查参数有效性,又可以指明参数应有的特征,方便读代码。

另外在正常的参数有效性检查之外,还可以使用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

}