题目大意:给出两个字符串,在第一个字符串中删除第二个字符串中出现过的所有字符并输出
分析:用flag[256]数组变量标记str2出现过的字符为true,输出str1的时候根据flag[str1[i]]是否为true,如果是true就不输出
注意:使用int lens1 = strlen(s1);int lens2 = strlen(s2);的形式,否则直接放在for循环里面会超时
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int main()
{
bool flag[256]={0};
char s1[10005];
char s2[10005];
cin.getline(s1,10005);
cin.getline(s2,10005);
int length1=strlen(s1);
int length2=strlen(s2);
for(int i=0;i<length2;i++)
flag[s2[i]]=1;
for(int i=0;i<length1;i++)
if(flag[s1[i]]!=1)
cout<<s1[i];
return 0;
}
cin.getline(s1,10005) :可以接受一行的字符读入,包括空行,以换行为结束,10005指出接收的最大值。 头文件为 : iostream
strlne用于指出字符串的大小,头文件为:cstring