最坑的一集。1、本题为了防止密码里面有空格导致 cin s; 出现错误。必须使用 getline(cin, s); 而使用这句代码前面必须搭配使用 getchar(); 把那个输入的换行符解决掉。2、我在循环的时候竟然把 i, j 都写错了服了。3、本题题解里面特殊的代码依然参照了柳婼大佬的写法。#includebits/stdc.h using namespace std; int main() { int n,shuzi 0,zimu 0,temp 0; cin n; string s; getchar(); for(int i 0; i n; i ) { getline(cin, s); shuzi 0; zimu 0; temp 0; if(s.size() 6) { cout Your password is tai duan le. endl; continue; } for(int j 0; j s.size(); j ) { if((!isdigit(s[j])) (!isalpha(s[j])) s[j] ! .) { temp 1; cout Your password is tai luan le. endl; break; } else if(isdigit(s[j])) shuzi ; else if(isalpha(s[j])) zimu ; } if(temp 0) { if(shuzi 0) cout Your password needs shu zi. endl; else if(zimu 0) cout Your password needs zi mu. endl; else cout Your password is wan mei. endl; } } return 0; }