1029. 旧键盘
旧键盘上坏了几个键,于是在敲一段文字的时候,对应的字符就不会出现。现在给出应该输入的一段文字、以及实际被输入的文字,请你列出肯定坏掉的那些键。
输入格式:
输入在2行中分别给出应该输入的文字、以及实际被输入的文字。每段文字是不超过80个字符的串,由字母A-Z(包括大、小写)、数字0-9、以及下划线“_”(代表空格)组成。题目保证2个字符串均非空。
输出格式:
按照发现顺序,在一行中输出坏掉的键。其中英文字母只输出大写,每个坏键只输出一次。题目保证至少有1个坏键。
输入样例:7_This_is_a_test _hs_s_a_es输出样例:
7TI
算法比较简单,但是要注意题目给出的最大字符串是80位,用char[ ]保存时应该是81位,有一位要给‘\0’;
然后关于自动在末尾添加 '\0'的问题: 注意在添加字符时,在下一位上加上'\0'
1、如果 char x[5]; char[0]='x',那么x[5]={'x','\0','\0','\0','\0'};
2、char x[5]="abcd"; 你写在双引号中的,编译程序会认为是字符串,会自动为你添加上一个字符串结尾符号\0
#include<stdio.h>
#include<iostream>
using namespace std;
int main()
{
char myin[81],myrin[81];
char result[81];
result[0]='\0';
cin>>myin>>myrin;
int a=0,b=0,c=0;
int test=0,flag;
int countb=0;
while(myrin[countb]!='\0')
{
countb++;
}
while(myin[a]!='\0')
{
if(myin[a]==myrin[b]&&b<countb)
{
a++;
b++;
}
else
{
test=0;
flag=1;
if(myin[a]<='z'&&myin[a]>='a')
{
myin[a]=myin[a]-('a'-'A');
}
while(result[test]!='\0')
{
if(result[test]!=myin[a])
{
test++;
}
else
{
flag=0;
break;
}
}
if(flag==1)
{
result[c]=myin[a];
//printf("%d %c\n",a,myin[a]);
result[c+1]='\0';
c++;
}
a++;
}
}
for(test=0;test<c;test++)
{
printf("%c",result[test]);
}
return 0;
}