1033 PTA | 旧键盘打字

98 阅读1分钟

PTA | 程序设计类实验辅助教学平台 (pintia.cn)

思想

就是对两个字符串进行比较,但是要加一些限制条件。

分析:坏掉的键保存在字符串bad中,应该输入的文字保存在should中,遍历整个应该输入的字符串,因为坏键以大写给出,所以如果在bad里面找到了should[i]的大写,表示这个字符对应的键坏了,则跳过这个字符不输出,continue跳过~

注意:如果大写键坏了,小写字母也不能输出,可以想象一下键盘上的键如果坏了,是什么都输出不了的。

注意:因为读入时,数据里面是可能存在 空格的1,我们要把空格也读入,那就不能用cin了,要用getline() image.png 如果用cin就会输出一个. image.png

如果是getline就会正常输出:

image.png

如果should[i]是大写并且在bad中找到了'+',表示上档键坏了,大写无法输出,所以这个字符也不能输出,continue跳过~如果都没跳过,则要输出should[i]~

#include<iostream>
#include<string>
#include<cstring>
using namespace std;


int main()
{
    string bad,should;

    getline(cin,bad);
    getline(cin,should);

    for(int i=0;i<should.size();i++)
    {
        //如果在bad里找到了大写的should[i],说明这个键坏了,不能输出
      if(bad.find(toupper(should[i]))!=string::npos) continue;

        //如果在bad里找到了大写的should[i],并且bad里找到了+号 ,那就是上档键坏了,大写不能输出
      if(isupper(should[i])&&bad.find('+')!=string::npos)continue;

     cout<<should[i];
        
    }


    return 0;
}