题目链接:
https://pintia.cn/problem-sets/994805342720868352/problems/994805454989803520
题目分析:
因为一些字符容易混淆,所以需要将字符串中那些字符进行替换。本题属于简单地字符串处理。
参考代码:
#include <cstdio>
#include <vector>
#include <cstring>
using namespace std;
struct Pnode{
char name[11];
char pw[11];
}temp;
vector<Pnode> ans;
bool change(char a[]){
bool flag = false;
for(int i = 0; i < strlen(a); i++){
if(a[i] == '1') a[i] = '@', flag = true;
if(a[i] == '0') a[i] = '%', flag = true;
if(a[i] == 'l') a[i] = 'L', flag = true;
if(a[i] == 'O') a[i] = 'o', flag = true;
}
return flag;
}
int main()
{
int n, num = 0;
scanf("%d",&n);
for(int i = 0; i < n; i++){
scanf("%s %s",temp.name, temp.pw);
if(change(temp.pw)) num++, ans.push_back(temp);
}
if(num){
printf("%d\n",num);
for(int i = 0; i < num; i++) printf("%s %s\n",ans[i].name, ans[i].pw);
}else{
if(n > 1) printf("There are %d accounts and no account is modified\n",n);
else printf("There is %d account and no account is modified\n",n);
}
return 0;
}