C++实现 L1-011 A-B (20分)
一、描述
本题要求你计算 A − B A−B A−B。不过麻烦的是, A A A和 B B B都是字符串 —— 即从字符串 A A A中把字符串 B B B所包含的字符全删掉,剩下的字符组成的就是字符串 A − B A−B A−B。
二、输入格式
输入在2行中先后给出字符串 A A A和 B B B。两字符串的长度都不超过 1 0 4 10^4 104,并且保证每个字符串都是由可见的ASCII码和空白字符组成,最后以换行符结束。
三、输出格式
在一行中打印出 A − B A−B A−B的结果字符串。
四、输入样例
I love GPLT! It's a fun game!
aeiou
五、输出样例
I lv GPLT! It's fn gm!
六、思路
- 逐行录入;
- 通过双重for循环,对字符串s1中的字符进行逐个检索;
- 若s1中某个字符未在s2中出现,则输出。
七、小知识点
- string 和 char 获得长度
string:s1.length();
char: strlen(s1); - string逐行录入,以’/n’结束
getline(cin,s1);
八、代码
#include <iostream>
#include <cstdio>
#include <cstring>
#include <string.h>
using namespace std;
int main()
{
string s1,s2;
getline(cin,s1);
getline(cin,s2);
int k=0;//记录s1中是否出现s2的字符,为0则没有出现
for(int i=0;i<s1.length();i++)
{
for(int j=0;j<s2.length();j++)
{
if(s1[i]==s2[j])
k++;
}
//k为0表示s1中字符没有在s2中出现
if(k==0)
cout<<s1[i];
k=0;
}
return 0;
}