第五周 L-011 A-B

题目

写了两种,一种是自己写的,比较复杂,先统计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;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在C语言中,五种基本数据类型存储空间长度的排列顺序是: A)char B)char=int<=float C)ch...
    夏天再来阅读 3,437评论 0 2
  • C/C++输入输出流总结 前两天写C++实习作业,突然发现I/O是那么的陌生,打了好长时间的文件都没有打开,今天终...
    LuckTime阅读 1,764评论 0 6
  • Linux指令中文说明传送入口 整理自Linux指令中文说明 文本和数据进行处理的编程语言awk 是一种编程语言,...
    释闲人阅读 2,193评论 1 6
  • 第一章 计算机与C++编程简介 C++程序6个阶段编程 ->预处理->编译->连接->装入->执行1.程序在编译器...
    rogertan30阅读 4,195评论 0 1
  • 浅谈C++常用输入输出 在编写C++程序的时候,经常因为输入输出头疼,所以在这里做一个小结,记录一下常用的输入输出...
    MinoyJet阅读 3,786评论 0 6