您的位置:首页 > 编程语言 > C语言/C++

pat乙级真题 1033. 旧键盘打字(20)

2017-11-27 22:08 489 查看

题目链接

             点击打开链接

注意事项:

         1
注意使用gets(),输入字符串。scanf无法输入空串,导致一个测试点不能过。
2
数组要大于100000

代码

      #include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(){
int flag[128] = {0},i,flag_big,kong_flag = 0;
char str[2][100010];
gets(str[0]);
gets(str[1]);
for (i = 0; i < strlen(str[0]);i++){//标志坏键
flag[str[0][i]] = 1;
}

if (flag['+']) //若有‘+’,则所有的大写字母都不能输出
flag_big = 1;
else
flag_big = 0;

for (i = 0; i < 26; i++){ //小写字母和大写字母同步
if (flag['A' + i])
flag['a' + i] = 1;
}
for (i = 0; i < strlen(str[1]);i++){
if (flag[str[1][i]]) //坏键
;
else{
if (str[1][i] >= 'A' && str[1][i] <= 'Z' && flag_big) //大写字母且上档键坏了
;
else{
kong_flag = 1;
printf("%c", str[1][i]);
}
}
}
if (!kong_flag)
printf("\n");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c语言 pat 乙级