A1084
程序员文章站
2023-10-11 19:39:51
输入:只能输入A-Z(不区分大小写),0-9和下划线; 第一行输入应输入字符串,第二行输入实际输入字符串。 输出:按大写输出缺少的字符,每个字符输出一次。 注意: 1、由于不区分大小写,则需要将小写字母识别为大写字母; 2、保证每个字符只出现一次。 思路: 1、将所有的字母都转化为大写字母; 2、挨 ......
输入:只能输入a-z(不区分大小写),0-9和下划线;
第一行输入应输入字符串,第二行输入实际输入字符串。
输出:按大写输出缺少的字符,每个字符输出一次。
注意:
1、由于不区分大小写,则需要将小写字母识别为大写字母;
2、保证每个字符只出现一次。
思路:
1、将所有的字母都转化为大写字母;
2、挨个枚举第一个字符串,如果在第二个字符串中没有出现,且hashtable数组为false,则输出,hashtable值改为true。
1 #include<cstdio> 2 #include<cstring> 3 int main(){ 4 char str1[100],str2[100]; 5 bool hashtable[128]={false}; //标记字符是否被输出,所有字符的ascii码不会超过128 6 scanf("%s",str1); 7 scanf("%s",str2); 8 int len1=strlen(str1); 9 int len2=strlen(str2); 10 for(int i=0;i<len1;i++){//枚举第一个字符串的每个字符 11 int j; 12 char c1,c2; 13 for(j=0;j<len2;j++){//枚举第二个字符串的每一个字符 14 c1=str1[i]; 15 c2=str2[j]; 16 if(c1>='a'&&c1<='z') c1-=32; 17 if(c2>='a'&&c2<='z') c2-=32; 18 if(c1==c2) break; 19 } 20 if(j==len2&&hashtable[c1]==false){ 21 printf("%c",c1); 22 hashtable[c1]=true;//c1为该字符所对应的ascii码 23 } 24 } 25 return 0; 26 }