1033. 旧键盘打字(20)
来源:互联网 发布:seo黑链代码 编辑:程序博客网 时间:2024/05/22 16:03
#include<iostream>#include<cstring>using namespace std;int c[500/32+1] = {};//刚学的位运算,装个逼,(*^__^*) 嘻嘻…… int main(){ char word[100001];//记录要输出的字符 char temp;//存储每个字符,简化代码 char line_1[500];//记录坏键 gets(line_1);//不能用scanf,没有坏键时scanf不能接收,所以用gets。 int len_1=strlen(line_1); for(int i=0;i<len_1;i++){//把每个坏键的ascii码所对应的置为1 temp = line_1[i]; c[temp/32]|=(1<<temp%32); } scanf("%s",word); int flag=0; if(c['+'/32]&(1<<'+'%32))//检测上档键是否坏掉 flag=1; int len=strlen(word); for(int i=0;i<len;i++){//输出 if(flag==1){//上档键坏的情况 if(c[word[i]/32]&(1<<word[i]%32));//过滤坏的字符 else if(word[i]>='A'&&word[i]<='Z');//过滤大写字母 else if(word[i]>='a'&&word[i]<='z' && c[(word[i]+('A'-'a'))/32]&(1<<(word[i]+('A'-'a'))%32)) ;//过滤小写字母 else putchar(word[i]); } else{//上档键没坏的情况 if(c[word[i]/32]&(1<<word[i]%32));//过滤坏的字符 else if(word[i]>='a'&&word[i]<='z' && c[(word[i]+('A'-'a'))/32]&(1<<(word[i]+('A'-'a'))%32)) ;//过滤小写字母 else putchar(word[i]); } } return 0;}
阅读全文
0 0
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 1033. 旧键盘打字(20)
- 定时器 settimer ontimer killtimer
- 用程序解九宫格数独
- swoole+Redis实现实时数据推送
- Ajax工作原理
- 在win7上安装keras的一点人生经验
- 1033. 旧键盘打字(20)
- Spring框架——事务处理(编程式和声明式)
- 给新人程序员一些经验
- c# 通用的工具类(CommonLibrary)
- 【学习笔记】nginx静态页面部署
- js清除浏览器缓存的几种方法
- CF 817D(线段树 计数 pre数组)
- 算法 第四版 1.3.33 ResizingArrayDeque
- 【05】Bootstrap — 代码