A1084

老葛發表於2019-02-15

輸入:只能輸入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 }