解题步骤:
1、问题需要在最后一起输出结果,所以需要用数组把每一个结果逐一存储起来;
2、把每个输入id和对应的字符串存储到数组中,并将字符串进行处理;如果处理后发生改变,保存并计数;否则不做操作。
代码实现:
#include <iostream>
using namespace std;
#define maxn 1010
string change(string& s)
{
string str;
for (int i = 0; i < s.size(); i++)
{
if (s[i] == '1')
{
str += '@';
}
else if (s[i] == '0')
{
str += '%';
}
else if (s[i] == 'O')
{
str += 'o';
}
else if (s[i] == 'l')
{
str += 'L';
}
else
{
str += s[i];
}
}
return str;
}
int main()
{
int T;
cin >> T;
int m = 0;
string id[maxn], s[maxn];
string ans_id[maxn], ans[maxn];
for (int i = 0; i < T; i++)
{
string temp;
cin >> id[i] >> s[i];
temp = change(s[i]);
if (temp != s[i])
{
ans_id[m] = id[i];
ans[m] = temp;
m++;
}
}
if (T == 1 && m == 0)
{
cout << "There is 1 account and no account is modified" << endl;
}
else if (m == 0)
{
printf("There are %d accounts and no account is modified", T);
}
else
{
cout << m << endl;
for (int i = 0; i < m; i++)
{
cout << ans_id[i] << " " << ans[i] << endl;
}
}
return 0;
}