比较坑,注意scanf或者cin 与 getline 之间必须 加一个 getchar();
坑点与 1078 字符串压缩与解压 一样。
flag1 表示是否存在数字,flag2表示是否存在字母,flag3是否存在非法字符。
1 #include<iostream> 2 #include<cctype> 3 using namespace std; 4 int main() { 5 int n; 6 cin>>n; 7 getchar();//注意scanf或者cin 与 getline 之间必须 加一个 getchar(); 8 string str; 9 while(n--) { 10 getline(cin,str); 11 if(str.size() < 6) cout<<"Your password is tai duan le."<<endl; 12 else { 13 bool flag1 = false,flag2 = false,flag3 = false; 14 for(int i = 0 ; i < str.size(); ++i) { 15 if(isdigit(str[i])) flag1 = true; 16 else if(isalpha(str[i])) flag2 = true; 17 else if(str[i] == '.') ; 18 else flag3 = true; 19 } 20 if(flag3 == true) cout<<"Your password is tai luan le."<<endl; 21 else if(flag1 == true && flag2 == false) cout<<"Your password needs zi mu."<<endl; 22 else if(flag1 == false && flag2 == true) cout<<"Your password needs shu zi."<<endl; 23 else cout<<"Your password is wan mei."<<endl; 24 } 25 } 26 return 0; 27 }