题目:https://pintia.cn/problem-sets/994805260223102976/problems/994805261217153024
经验总结:
注意里面有个测试点是包含空格的,所以要用getline的方式来获取字符串。
记:在用getline时,需要注意前面是否有cin等输入,是否需要getchar一下。
C++代码:
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
string s;
int n;
cin>>n;
getchar(); //注意吸收回车,避免接下来的getline获取到。
while(n--){
getline(cin,s); //注意字符串里面可能包含空格,所以用getline,否则有个测试点会错误。
if(s.size()<6){
cout<<"Your password is tai duan le."<<endl;
}else{
bool flag_num = false,flag_char = false,illegal = false;
for(string::iterator it=s.begin();it!=s.end();it++){
if(*it>='A'&&*it<='Z'||*it>='a'&&*it<='z'){
flag_char = true;
}else if(*it>='0'&&*it<='9'){
flag_num = true;
}else if(*it != '.'){
illegal = true;
break;
}
}
if(illegal){
cout<<"Your password is tai luan le."<<endl;
continue;
}
if(flag_num&&flag_char){
cout<<"Your password is wan mei."<<endl;
}else if(!flag_num){
cout<<"Your password needs shu zi."<<endl;
}else if(!flag_char){
cout<<"Your password needs zi mu."<<endl;
}
}
}
return 0;
}