Home PAT 1050 String Subtraction
Post
Cancel

PAT 1050 String Subtraction

Link

题目很简单, 需要注意的有两点:

  1. 使用 getline(cin,str) 之后, 如果接下来使用 cinscanf 读入, 则需要 getchar() 来吞掉一个换行符; 如果使用 getline(cin,str) 之后继续使用 getline(cin,str), 就不需要 getchar();
  2. ASCII 码的范围是 0-127, 不过后来发现这些字符不太能满足我们的需要, 所以就有了扩展 ASCII, 范围是 0-255, 正好占八位(一个字节). 所以范围是 0-255 !
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <string>
#include <string.h>
#include <vector>
using namespace std;
string s1,s2;
bool ascii[300];
int main() {
    getline(cin,s1);
    getline(cin,s2);
    for(int i=0;i<s2.size();++i)
        ascii[s2[i]]=true;
    for(int i=0;i<s1.size();++i)
        if(!ascii[s1[i]]) printf("%c",s1[i]);
    printf("\n");
    return 0;
}
This post is licensed under CC BY 4.0 by the author.