注意参数传递要引用
#include<iostream>
#include<algorithm>
#include<vector>
#include<map>
#include<string>
#include<set>
using namespace std;
struct rec{
string name;
string pw;
};
vector<rec> mod_rec;
bool ismod(string &s){
bool flag = true;
for(int i = 0; i < s.size(); i++){
if(s[i] == '1'){
s[i] = '@';
flag = false;
}
else if(s[i] == '0'){
s[i] = '%';
flag = false;
}
else if(s[i] == 'l'){
s[i] = 'L';
flag = false;
}
else if(s[i] == 'O'){
s[i] = 'o';
flag = false;
}
}
if(flag == true) return true;
else return false;
}
int main(){
int n;
cin>>n;
for(int i = 0; i < n; i++){
rec a;
cin>>a.name>>a.pw;
if(!ismod(a.pw)){
mod_rec.push_back(a);
}
}
int count = mod_rec.size();
if(count == 0){
if(n == 1){
printf("There is %d account and no account is modified",n);
}
else{
printf("There are %d accounts and no account is modified",n);
}
}
else{
cout<<count<<endl;
for(int i = 0; i < mod_rec.size(); i++){
printf("%s %s\n",mod_rec[i].name.c_str(),mod_rec[i].pw.c_str());
}
}
return 0;
}
本文介绍了一个通过修改密码中特定字符来标记账号是否被修改的方法。对于包含数字1、0和字母l、O的情况,这些字符会被替换成特殊符号。如果密码没有变化,则认为该账号未被修改,并将此类账号的信息收集到一个列表中。最后,程序会输出被标记为已修改的账号数量及详细信息。

被折叠的 条评论
为什么被折叠?



