特别注意:如果使用i<strlen(str)来判断循环结束,可能会导致超时。。。
代码实现:
#include<stdio.h>
#include<string.h>
int main()
{
char key[50], str[100010];
int flag = 0;
gets(key); gets(str);
for (int i = 0; key[i] != 0; i++)if (key[i] == '+')flag = 1;
for (int i = 0; key[i] != 0; i++)if (key[i] >= 'A'&&key[i] <= 'Z')key[i] += 32;
for (int i = 0; str[i] != 0; i++)
{
int judge = 0; char ch = str[i];
if (ch >= 'A'&&ch <= 'Z')
for (int j = 0; key[j] != 0; j++)if (key[j] == ch + 32)judge = 1;
if (ch<'A' || ch>'Z')
for (int j = 0; key[j] != 0; j++)if (key[j] == ch)judge = 1;
if (ch >= 'A'&&ch <= 'Z'&&flag == 1)judge = 1;
if (judge == 0)printf("%c", ch);
}
return 0;
}