B 1067 试密码(字符串的输入、测试点2、5分析)

    技术2022-07-17  66

    题目

    思路

    题目坑点是:

    题目只明确了正确密码中无空格,输入的密码可能有空格(测试点5),所以要用getline,注意getline输入字符串时,前面需要用getchar吸收前一个输入的换行、结束符号。题目所说的保证有一次尝试不对,测试点2是直接输入#结束,需要加一个输入为#号的特殊情况;

    AC代码

    #include<bits/stdc++.h> using namespace std; int main(){ string code; cin>>code; int n; cin>>n; string s; int cnt=0; getchar();//用getline前一定注意,需要getchar吸收前一个输入的结束符号 while(n){ getline(cin,s); if(s=="#") break; cnt++; if(s==code && cnt <= n){ cout<<"Welcome in"<<endl; break; } else if(s!=code && cnt <= n){ cout<<"Wrong password: "<<s<<endl; } if(cnt == n) { //次数的判断要与前面分开 cout<<"Account locked"<<endl; break; } } return 0; }
    Processed: 0.016, SQL: 9