PAT乙级 旧键盘打字 (c++)

在这里插入图片描述
在这里插入图片描述

✨ 本题跟之前的旧键盘的题目正好输出相反的内容。链接:这里这里这里!
✨需要注意的就是 增加了一个上档键,如果该键坏了,那么大写字母是无法打印出来的。依然采用flag来标志是否坏了。

#include<iostream>
#include<string>
using namespace std;
int main(){
	string s1;
	string s2;

	cin>>s1>>s2;

	int flag = 0;//上档键坏掉了,那么大写的英文字母无法被打出。
	for(int i=0;i<s1.length();i++){
		if(s1[i] == '+'){
			flag = 1;
		}
	}
	for(int i =0;i<s2.length();i++){
            int ff = 0;
		for(int j=0;j<s1.length();j++){
			if(s2[i]>=65&&s2[i]<=90){
				if(s1[j]==s2[i] || flag ==1){
					    ff = 1;
						break;

				}
			}else if(s2[i]>=97&&s2[i]<=122){
				if(s1[j]>=65&&s1[j]<=90){
				    int x = s1[j]-'0';
					char c = x+32+'0';
					if(c==s2[i]){
						ff = 1;
						break;
					}

				}else if(s1[j]>=97&&s1[j]<=122){
				    if(s2[i]==s1[j]){
                        ff = 1;
                        break;
				    }
				}

			}else{
				if(s1[j]==s2[i]){
						ff = 1;
						break;

				}
			}

		}
		if(ff==0){
            cout<<s2[i];
		}
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值