7-6 A-B

本题要求你计算A−B。不过麻烦的是,A和B都是字符串 —— 即从字符串A中把字符串B所包含的字符全删掉,剩下的字符组成的就是字符串A−B。

输入格式
输入在2行中先后给出字符串A和B。两字符串的长度都不超过10
​4
​​ ,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。

输出格式
在一行中打印出A−B的结果字符串。

输入样例

I love GPLT! It’s a fun game!

aeiou

输出样例

I lv GPLT! It’s fn gm!

题解:遍历第二个子串,不断的从第一个子串里通过erase删除这个字符。

C++ AC代码

#include 
#include 
using namespace std;
//看看在不在,不在返回-1,否则返回下标
int judge_exist(char a,string str)
{
    for(int i=0;i<str.length();i++)
    {
        if(str[i]==a)
        {
            return i;
        }
    }
    return -1;
}
int main()
{
    string str1="";
    string str2="";
    //getline用于输入带空格的字符串
    getline(cin,str1);
    getline(cin,str2);
    for(int i=0;i<str2.length();i++)
    {
        while(judge_exist(str2[i],str1)!=-1)
        {
            //erase用于删除字符串的字串,第一个代表位置,第二个代表数量
            str1.erase(judge_exist(str2[i],str1),1);

        }
    }
    cout<<str1;

}

你可能感兴趣的:(PTA)