PAT 1035 Password

#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<queue>
#include<vector>
#include<cmath>
#include<iomanip>
#include<algorithm>
using namespace std;

struct Account
{
	char chUser[15];
	char chPass[15];
	bool isModified;
};

bool modify(char *pass)
{
	bool ret = false;
	int len = strlen(pass);
	for(int i=0; i<len; i++)
	{
		if(pass[i] == '1')
		{
			pass[i] = '@';
			ret = true;
		}
		else if(pass[i] == '0')
		{
			pass[i] = '%';
			ret = true;
		}
		else if(pass[i] == 'l')
		{
			pass[i] = 'L';
			ret = true;
		}
		else if(pass[i] == 'O')
		{
			pass[i] = 'o';
			ret = true;
		}
	}
	return ret;
}

int main()
{
	int N,i;
	vector<Account> v;
	Account ac;
	int iCount = 0;
	cin>>N;
	for(i=0; i<N; i++)
	{
		cin>>ac.chUser;
		cin>>ac.chPass;
		ac.isModified = modify(ac.chPass);
		if(ac.isModified)
			iCount++;
		v.push_back(ac);
	}
	if(iCount == 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<<iCount<<endl;
		for(i=0; i<v.size(); i++)
			if(v[i].isModified)
				cout<<v[i].chUser<<" "<<v[i].chPass<<endl;
	}
	return 0;
}

  

多学习,多总结。
原文地址:https://www.cnblogs.com/yanhaiming/p/2818966.html