getline(cin,s1)捕获一行值,回车结束,回车符号不会写入s1中,回车也不会留在缓冲区。
用cin.get会把回车留到缓冲区,影响下一次的读取,需要用getchar();cin.get()来处理回车。
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main() {
string s1;
string s2;
int a[127] = { 0 };
int i, j;
getline(cin, s1);
getline(cin, s2);
for (i = 0; i < s1.length(); i++) {
if (a[s1[i]] != 1) {
a[s1[i]]++;
printf("%c", s1[i]);
}
}
for (j = 0; j < s2.length(); j++) {
if (a[s2[j]] != 1) {
a[s2[j]]++;
printf("%c", s2[j]);
}
}
return 0;
}