C++程序-多行字符输入并判断类别(安全密码问题)

判断键盘输入是否安全密码-char[]类

/*题目:安全密码要求:一般来说一个比较安全的密码至少应该满足下面两个条件:

    (1).密码长度大于等于8,且不要超过16

    (2).密码中的字符应该来自下面“字符类别”中四组中的至少三组。

    这四个字符类别分别为:1.大写字母:A,B,C...Z;

    2.小写字母:a,b,c...z;

    3.数字:0,1,2...9;

    4.特殊符号:~,!,@,#,$,%,^(除以上三类均认定为特殊字符);

键盘输入内容:请输入行数nn行密码,并输出是否安全密码(YES|NO*/

注意:本例仅给出实现函数,读者可自行调用函数;

/*函数功能:返回字符数组类别数量;*/

int charTypeN(char *ch){

    int a=0,b=0,c=0,d=0,i;

    for(i=0;i='A')a=1;

        else if(ch[i]<='z'&&ch[i]>='a')b=1;

        else if(ch[i]<='9'&&ch[i]>='0')c=1;

        else d=1;

    }

    return a+b+c+d;

}

/*函数功能:判断键盘输入n行char[]是否为安全密码;

特点:ans[51][10]接收结果,使输入和结果分离开;*/

void isSafeCharCode(){

    int n=0,i;

    char ch[51],ans[51][10];//ch-接收输入,ans-接收结果

    cout<<"请输入行数n和n行密码:"<>n;

    for(i=0;i>ch;

        int q=strlen(ch);

//ans[i]="YES";字符数组整体赋值可用strcpy或者可赋值指针类型

//不可赋值为常变量类型

//error: incompatible types in assignment of const char [4]" to char [10]

        if(q>=8&&q<=16&&charTypeN(ch)>=3)strcpy(ans[i],"YES");

        else strcpy(ans[i],"NO");

    }

    for(i=0;i

你可能感兴趣的:(C++,程序设计)