1033. 旧键盘打字(20)

int main()
{
	//freopen("d://1.txt", "r", stdin);
	//freopen("d://2.txt", "w", stdout);
	string  n, m;
	//while (cin >> n >> m)
	//{
	while (getline(cin, n))//用getline才能确保每行读进去
	{
		getline(cin, m);
		if (n.length() == 0 || n.empty())//脑残啊,第一行为空,所有的键都是好的,就直接输出就好了。
		{
			cout << m << endl;
			continue;
		}
		bool up = false;
		set<char> broken;
		for (int i = 0; i < n.length(); i++)
		{
			if (n[i] == '+')
			{
				up = true;//坏了
				//broken.insert(n[i]);//+自身也是一个字符,注意去除掉,还以为是这个点。结果不是
			}
			else
			{
				if (n[i] >= 'A'&&n[i] <= 'Z')
				{
					broken.insert(n[i]);
					broken.insert(n[i] - 'A' + 'a');
				}
				else if (n[i] >= 'a'&&n[i] <= 'z')
				{
					broken.insert(n[i]);
					broken.insert(n[i] - 'a' + 'A');
				}
				else
				{
					broken.insert(n[i]);
				}
			}
		}
		for (int i = 0; i < m.length(); i++)
		{
			if (broken.count(m[i]) == 0)
			{
				if (m[i] >= 'A'&&m[i] <= 'Z'&&up)
				{
					/*char temp = m[i] - 'A' + 'a';
					cout << temp;*/
					continue;
				}
				else
				{
					cout << m[i];
				}
			}
		}
		cout << endl;
	}
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值