A1050

输入两个字符串,将第一个字符串中包含的第二个字符串的字符去掉(包括空格),然后输出。

gets()不能用了,我混搭了string和length(),不用纠结长度还是很好的。

第二个字符串所在HashTable数组对应位置如果不等于0,则清零。输出非零位置对应ch1的字符。

书上的代码更简洁一些,但是我尽力了orz。

 1 #include<cstdio>
 2 #include<iostream>
 3 #include<string.h>
 4 using namespace std;
 5 string ch1,ch2;
 6 int hashTable[300];
 7 int main(){
 8     getline(cin,ch1);
 9     getline(cin,ch2);
10     int len1=ch1.length();
11     int len2=ch2.length();
12     for(int i=0;i<len1;i++){
13         hashTable[ch1[i]]++;
14     }
15     
16     for(int i=0;i<len2;i++){
17         hashTable[ch2[i]]=0;
18         }    
19     
20     for(int i=0;i<len1;i++){
21         if(hashTable[ch1[i]]!=0){
22             printf("%c",ch1[i]);
23         }
24     }
25     return 0;
26 }
原文地址:https://www.cnblogs.com/Lynn-2019/p/10386593.html