题目链接:https://www.patest.cn/contests/pat-a-practise/1035
题目大意:如果密码中含有1、0、l、O,将其分别替换为@、%、L、o。
代码如下:
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main(int argc, char const *argv[])
{
int N,count=0;//count计算需要更改的数量
cin>>N;
string id,psd;
string inandpsd[1000];
for(int i=0;i<N;i++){
cin>>id>>psd;
int flag=0;
for(int j=0;j<psd.length();j++){
if(psd[j]=='1'){
psd[j]='@';
flag=1;
}
if(psd[j]=='0'){
psd[j]='%';
flag=1;
}
if(psd[j]=='l'){
psd[j]='L';
flag=1;
}
if(psd[j]=='O'){
psd[j]='o';
flag=1;
}
}
if(flag)
inandpsd[count++]=id+" "+psd;
}
if(count==0){
if(N==1)
cout<<"There is 1 account and no account is modified"<<endl;
else
cout<<"There are "<<N<<" accounts and no account is modified"<<endl;
}
else{
cout<<count<<endl;
for(int i=0;i<count;i++)
cout<<inandpsd[i]<<endl;
}
return 0;
}