旧键盘寻找坏键(c语言)(简化版)(简单实现)
此题可以看作是pat旧键盘的简化版
看似简单实则陷阱很多
陷阱一大小写的判断
在我们进行字符的判断时大小写是不同的字符而在键盘上确实一样的键所以在我们经行判断以前我们要把大小写转化成一个标准
这里推荐转成大写因为本题的要求是最后的结果转换成大写输出
代码如下
char a[90];
char b[90];
char c[90];
int i,j,k,n=0,h,l;
scanf ("%s%s",a,b);
k=strlen(a);
for(l=0;l<k;l++){
if(a[l]>='A'&&a[l]<='Z')
a[l]=a[l]+32;
}
for(i=0,j=0;i<k;i++){
if (NULL==strchr(b,a[i])){
if(NULL==strchr(c,a[i])){
c[j]=a[i];
j++;
h=j;}
}}
for(n=0;n<h;n++){
if (c[n]>='a'&&c[n]<'z')
c[n]=c[n]-32;
printf ("%c",c[n]);
陷阱二 空格的输入输出
如果你最后使用printf输出最后的字符就有可能在字符中间空格有无法输出完整字符的情况于是上述代码使用了以此字符输出的形式以解决问题