通过代码:
#include <iostream>
using namespace std;
const int N = 1010;
string name[N], pwd[N];
string change(string str)
{
string res;
for (auto c : str) //范围遍历
if (c == '1') res += '@';
else if (c == '0') res += '%';
else if (c == 'l') res += 'L';
else if (c == 'O') res += 'o';
else res += c;
return res;
}
int main()
{
int n;
cin >> n;
int m = 0;
for (int i = 0; i < n; i ++ )
{
string cur_name, cur_pwd;
cin >> cur_name >> cur_pwd;
string changed_pwd = change(cur_pwd);
if (changed_pwd != cur_pwd)
{
name[m] = cur_name; //修改过密码的姓名
pwd[m] = changed_pwd; //修改后的密码
m ++ ; // 计数
}
}
if (!m)
{
if (n == 1) puts("There is 1 account and no account is modified");
else printf("There are %d accounts and no account is modified\n", n);
}
else
{
cout << m << endl;
for (int i = 0; i < m; i ++ ) cout << name[i] << ' ' << pwd[i] << endl;
}
return 0;
}
思路:
- 更新密码之后于原密码比较,查看是否一样
- 单独写一个change函数
- 在没有修改密码的情况下,特判n=0的情况