输入: i don't love you i don't like you
输出:like love
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
#include <algorithm>
using namespace std;
bool compare_word(string a,string b){
return a < b;
}
int main() {
string str;
getline(cin, str);
vector<string> words;
string temp = "";
for(int i = 0;i<str.size();i++){//将字符串中的单词依次录入数组
if(str[i]>='A'&&str[i]<='Z'||str[i]>='a'&&str[i]<='z'){
temp += str[i];
}
else{
words.push_back(temp);
temp = "";
}
if(i==str.size()-1&&temp.size()!=0){//将最后一个单词录入数组
words.push_back(temp);
}
}
vector<string> isword;
string pre;
getline(cin, pre);//读取单词前缀
for(int i = 0; i < words.size();i++){
if(pre == words[i].substr(0,pre.size())){//若前缀匹配,则压入数组
isword.push_back(words[i]);
}
}
//对words进行排序,字典靠前的排在前面
sort(isword.begin(), isword.end(),compare_word);
//遇到重复单词不输出
string s = "";
for(int i = 0;i < isword.size();i++){
if(s != isword[i]){
cout << isword[i];
s = isword[i];
}
else{
continue;
}
if(i<isword.size() - 1){
cout << " ";
}
}
cout << endl;
}