题目
写了两种,一种是自己写的,比较复杂,先统计b中出现的不重复的字符,存在数组里边,再与a每个字符比较,如果有相同不打印。
我先用的字符数组,在提交过程中出了问题,不识别gets函数,所以后来改成了字符串,用getline函数。过程相对下边一种方法挺麻烦……
#include<iostream>
#include<string>
using namespace std;
int main()
{
string a, b;
getline(cin, a);
getline(cin, b);
char c[256] = { ' ' };
int k = 1;
bool flag;
c[0] = b[0];
for (int i = 0; i < b.length(); i++)
{
flag = false;
for (int j = 0; j < k; j++) //b[j]表示扫描到当前i位置已经出现的不重复的字符
{
if (b[i] == c[j])
{
flag = true;
break;
}
}
if (flag == false) {
c[k] = b[i];
k++;
}
}
for (int i = 0; i < a.length(); i++)
{
flag = false;
for (int j = 0; j < k; j++)
{
if (a[i] == c[j])
flag = true;
}
if (flag == false)
cout<<a[i];
}
cout << endl;
//for (int i = 0;i<k; i++)
//{
// cout << c[i] ;
//}
getchar();
return 0;
}
另一种是asc码也就256,统计他们是否出现,输出a的时候再看是不是可以输出
#include<iostream>
#include<string>
using namespace std;
int main()
{
bool book[256] = { false };
string a, b;
getline(cin, a);
getline(cin, b);
for (int i = 0; i < b.length(); i++)
{
book[b[i]] = true;
}
for (int i = 0; i < a.length(); i++)
{
if (!book[a[i]])
cout << a[i];
}
getchar();
return 0;
}