题目链接
注意事项:
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;
}