1081 检查密码
坑点:
测试点2一开始过不去,后来发现是因为密码里可能有空格。把cin改成了getline就过去了。以后有接收一行string的情况,尽量都使用getline
#include<stdio.h>
#include<iostream>
#include<string>
using namespace std;
int main(int argc, char* argv[]) {
int n; cin >> n;
getchar();
for (size_t i = 0; i < n; i++) {
bool lengthFlag = true;
bool numFlag = false;
bool letterFlag = false;
bool illegalFlag = false;
string s; getline(cin, s);
if (s.size() < 6) { lengthFlag = false; }
for (size_t j = 0; j < s.size(); j++) {
if ((s[j] >= 'a' && s[j] <= 'z') || (s[j] >= 'A' && s[j] <= 'Z')) { letterFlag = true; }
else if (s[j] >= '0' && s[j] <= '9') { numFlag = true; }
else if (s[j] != '.') { illegalFlag = true; }
}
// 输出
if (lengthFlag == false) { cout << "Your password is tai duan le." << endl; }
else {
if (illegalFlag == true) { cout << "Your password is tai luan le." << endl; }
else if (letterFlag == true && numFlag == false) { cout << "Your password needs shu zi." << endl; }
else if (letterFlag == false && numFlag == true) { cout << "Your password needs zi mu." << endl; }
else if (letterFlag == true && numFlag == true) { cout << "Your password is wan mei." << endl; }
}
}
return 0;
}