欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

A1084

程序员文章站 2022-05-25 19:38:15
输入:只能输入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 }

 

推荐阅读