#include <iostream> #include <ctype.h> using namespace std; string str; int a2,a3,a4,a5; int check() { int an=0; int t1=0,t2=0,t3=0,t4=0; for(int i=0;i<str.length();i++) { if(islower(str[i])) t1++; else if(isupper(str[i])) t2++; if(isdigit(str[i])) t3++; if(ispunct(str[i])) t4++; } if((t1==0&&t2!=0)||(t1!=0&&t2==0)) an+=10; else if(t1!=0&&t2!=0) an+=20; if(t3==1) an+=10; else if(t3>1) an+=20; if(t4==1) an+=10; else if(t4>1) an+=25; if((t3!=0||t4!=0)&&(t3!=0)&&t4==0) an+=2; else if(((t1==0&&t2!=0)||(t1!=0&&t2==0))&&t3&&t4) an+=3; else if(t1&&t2&&t3&&t4) an+=5; return an; } int main() { int an=0; cin>>str; int l=str.length(); if(l>=8) an+=25; else if(l>=5&&l<=7) an+=10; else an+=5; an+=check(); if(an>=90) cout<<"VERY_SECURE"; else if(an<90&&an>=80) cout<<"SECURE"; else if(an<80&&an>=70) cout<<"VERY_STRONG"; else if(an<70&&an>=60) cout<<"STRONG"; else if(an<60&&an>=50) cout<<"AVERAGE"; else if(an<50&&an>=25) cout<<"WEAK"; else if(an>=0&&an<25) cout<<"VERY_WEAK"; }
直接暴力做,用islower函数判断是否为小写字母,isupper函数判断是否为大写字母,isdigit函数判断是否为数字,ispunct函数判断是否为英文字符。(上述函数都在头文件ctype.h里面),再用t1,t2,t3,t4对字符类型进行计数,最后直接判断 参与链接