本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。
输入格式:
输入在2行中先后给出字符串A和B。两字符串的长度都不超过104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
输出格式:
在一行中打印出A−B的结果字符串。
输入样例:
I love GPLT! It's a fun game!
aeiou
输出样例:
I lv GPLT! It's fn gm!
思路:这个题目有两种解法,推荐用解法二写......
解法一:直接两层循环比较字符后输出,暴力解就完事儿了,
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
char num[];
char num1[];
gets(num);
gets(num1);
int len=strlen(num);
int len1=strlen(num1);
for(int i=;i<len;i++)
{
int flag=;
for(int j=;j<len1;j++)
{
if(num[i]==num1[j])
{
flag=;
break;
}
}
if(flag==)
printf("%c",num[i]);
}
printf("\n");
return ;
}
解法二:建立一个用字符当下标的数组进行标记,再输出,
#include<iostream>
#include<cstring>
using namespace std;
int main()
{
int book[];
memset(book,,sizeof(book));
string str1;
getline(cin,str1);
string str2;
getline(cin,str2);
for(int i=;i<str2.size();i++)
book[str2[i]-' ']=;//标记
for(int i=;i<str1.size();i++)
{
if(book[str1[i]-' ']==)
cout<<str1[i];
}
return ;
}