【PAT乙级1033】——旧键盘打字

2024-02-04 06:48
文章标签 键盘 打字 pat 乙级 1033

本文主要是介绍【PAT乙级1033】——旧键盘打字,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

思路:
err串用于存放坏键,input串存放待输入串;
遍历err串,在遍历一个err串时,同时遍历input串,看是input串是否含有err串的字符,如果有则用特殊字符替换(这里我使用'*'替换),整个遍历完成后,遍历输出input串,遇到'*'就不输出!

看了解析后,解析思路:
利用string类型find()函数,只需遍历input串,如果input[i]err串中,则不输出,否则输出;

代码如下,两个思想都写在了里面,注释了解析思路,提交使用g++

#include<bits/stdc++.h>
using namespace std;int main()
{string err, input;int lenErr, lenInput;int count = 0;getline(cin, err);getline(cin, input);lenErr = err.length();lenInput = input.length();/*解析思路*/
//	for(int i=0; i<lenInput; i++)
//	{
//		if(err.find(toupper(input[i]))!=string::npos) continue;
//		if(isupper(input[i])&&err.find('+')!=string::npos) continue;
//		printf("%c", input[i]);
//	}/*自己的思路*/for(int i=0; i<lenErr; i++){for(int j=0; j<lenInput; j++){if((err[i]=='_'||err[i]==','||err[i]=='.'||err[i]=='-'||isdigit(err[i]))&&err[i]==input[j]){input[j] = '*';}if(err[i]==toupper(input[j])){input[j] = '*';}			if(err[i]=='+'&&isupper(input[j])){			input[j] = '*';					}					}	} //这两个 for 循环加下面控制输出代码,等价最上面注释的一个 for 循环 count=0;for(int i=0; i<lenInput; i++){if(input[i]=='*')count++;}if(count==lenInput)printf("\n");else{for(int i=0; i<lenInput; i++){if(input[i]!='*')printf("%c", input[i]); }}return 0;
}

【Debug过程】:自己的逻辑没有问题,问题出在输入上,以后记住:如果题目输入多行string,最好用getline( cin, string);
【补漏】:string类find()与 string::npos的用法,find不仅可以判断单个字符,也可以判断字符串是否为比较字符的子串,同时还可以设定判断起始位置!另外字符串可以直接比较,比较规则为【字典序】,像Q1028人口普查题,判断出生年月日是否在规定范围内,直接>=和<=比较即可;
【补漏】:ctype库中好用的函数有:is系列(isalnum, isalpha, islower, isupper, isdigit); to系列(toupper, tolower)
ctype文件包含库函数简单明了版:
https://blog.csdn.net/zhouhongkai06/article/details/79050856

这篇关于【PAT乙级1033】——旧键盘打字的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/676653

相关文章

键盘快捷键:提高工作效率与电脑操作的利器

键盘快捷键:提高工作效率与电脑操作的利器 在数字化时代,键盘快捷键成为了提高工作效率和优化电脑操作的重要工具。无论是日常办公、图像编辑、编程开发,还是游戏娱乐,掌握键盘快捷键都能带来极大的便利。本文将详细介绍键盘快捷键的概念、重要性、以及在不同应用场景中的具体应用。 什么是键盘快捷键? 键盘快捷键,也称为热键或快捷键,是指通过按下键盘上的一组键来完成特定命令或操作的方式。这些快捷键通常涉及同

如何快速练习键盘盲打

盲打是指在不看键盘的情况下进行打字,这样可以显著提高打字速度和效率。以下是一些练习盲打的方法: 熟悉键盘布局:首先,你需要熟悉键盘上的字母和符号的位置。可以通过键盘图或者键盘贴纸来帮助记忆。 使用在线打字练习工具:有许多在线的打字练习网站,如Typing.com、10FastFingers等,它们提供了不同难度的练习和测试。 练习基本键位:先从学习手指放在键盘上的“家位”开始,通常是左手的

推荐练习键盘盲打的网站

对于初学者来说,以下是一些推荐的在线打字练习网站: 打字侠:这是一个专业的在线打字练习平台,提供科学合理的课程设置和个性化学习计划,适合各个水平的用户。它还提供实时反馈和数据分析,帮助你提升打字速度和准确度。 dazidazi.com:这个网站提供了基础的打字练习,适合初学者从零开始学习打字。 Type.fun打字星球:提供了丰富的盲打课程和科学的打字课程设计,还有诗词歌赋、经典名著等多样

Android 进入页面后默认不弹出系统键盘

在onCreate中加入一行代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

解决TMP_InputField 在WebGL(抖音)上不能唤起虚拟键盘,不能使用手机内置输入法的问题

整整花费了一天时间测试和解决。试验了多个方法,花了不少美刀,最终才发现抖音这个官方文档,哭了: https://partner.open-douyin.com/docs/resource/zh-CN/mini-game/develop/guide/game-engine/rd-to-SCgame/open-capacity/capability-adaptation/sc_webgl_keyboa

PAT甲级-1044 Shopping in Mars

题目   题目大意 一串项链上有n个钻石,输入给出每个钻石的价格。用m元买一个连续的项链子串(子串长度可为1),如果不能恰好花掉m元,就要找到最小的大于m的子串,如果有重复就输出多个,按递增顺序输出子串的前端和后端索引。 原来的思路 取连续的子串使和恰等于m,没有恰等于就找最小的大于。可以将子串依次累加,使得每个位置都是起始位置到该位置的序列和,整个数组显递增顺序,就可以用右边减左边

已解决:Visual studio2022突然只能打字不能使用回车键、退格键

本问题已得到解决,请看以下小结: 关于《VS2022部分按键失灵》的解决方案 记录备注报错时间2024年报错版本VS2022报错复现写代码,点击删除键失灵了报错描述点击关闭提示如下: Microsoft visual studio 已检测到某个操作正在阻止用户输入。这可能是由活动模式对话框或需要阻止用户交互的任务所致。是否仍要关闭?报错截图-报错原因不详解决步骤 1.VS2022搜索键盘,点击

iOS浅谈模拟器弹不出键盘的问题

前言:昨天帮一个小伙伴调试程序的时候,在模拟器上发现一个问题,就是点击UITextField之后,弹不出键盘...可能有的朋友要说了,那还不容易,你直接Toggle Software Keyboard(command+k)不就解决了吗,可是试了好几遍就是弹不出键盘,不知道是什么鬼1.首先分析一下command+K为什么没有作用....由于在iOS8.0及以后的模拟器中,Xcode默认是使用电脑键

PAT (Advanced Level) Practice——1011,1012

1011:  链接: 1011 World Cup Betting - PAT (Advanced Level) Practice (pintia.cn) 题意及解题思路: 简单来说就是给你3行数字,每一行都是按照W,T,L的顺序给出相应的赔率。我们需要找到每一行的W,T,L当中最大的一个数,累乘的结果再乘以0.65,按照例子写出表达式即可。 同时还需要记录每一次选择的是W,T还是L

【高效办公】三、两台电脑共享鼠标、键盘和文件,两台电脑当一个用的神操作!barrier

1.下载 ubuntu:sudo apt install barrierwindows:https://github.com/debauchee/barrier/releases-下载 : 2.4.0-Assets-BarrierSetup-2.4.0-release.exe  2.运行 ubuntu:sudo apt install barrierwindows:https://gith