pat 1029旧键盘 C语言

1029 旧键盘 (20分)

旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
输入格式:

输入在 2 行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过 80 个字符的串,由字母 A-Z(包括大、小写)、数字 0-9、以及下划线 _(代表空格)组成。题目保证 2 个字符串均非空。
输出格式:

按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有 1 个坏键。
1.strlen是计算字符串的长度
2.strchr(a,b)是查询字符串a中是否有字符b,有结果为1,没有结果为0
3.因为输出的结果全部是大写的字母,所以原本小写的要转化成大写的字母进行比较分析,这点要注意

#include
#include
int main()
{
    int count=0;
    char y[81]={0},s[81]={0},r[38]={0};
    scanf("%s\n%s",y,s);
    for(int i=0;i<strlen(y);i++)
    {
        if((strchr(s,y[i])==0)&&(strchr(r,y[i])==0))//如果在输入的字符串里没有找到并且在坏键里也没有找到
        {
            if(y[i]>='a'&&y[i]<='z')//如果是小写我们还要转大写再判断一次
            {
                y[i]=y[i]-32;
                if(strchr(r,y[i])==0)//如果还是没有找到
                {
                    r[count]=y[i];//记录坏键
                    count++;
                }
            }
            else//不是字母的情况
            {
                r[count]=y[i];//记录坏键
                count++;
            }
        }
    }
    for(int i=0;i<strlen(r);i++)//输出坏键
    {
        printf("%c",r[i]);
    }
}

你可能感兴趣的:(pat,字符串,c语言)