輸入英文段落,刪除其中的重複單詞。即每個單詞只出現一次
#include<iostream>
#include<string>
using namespace std;
#define MAX 1001
int main()
{
//char *p[MAX];
string str[MAX];
string result[MAX];
int i=0;
int num=0; //總單詞個數
int n=0; //用來記錄不重複的單詞個數
int p[MAX];
while(cin>>str[i])
{
// p[i]=&str[i][0]; //第i個指針指向第i個單詞的首元素
num++;
i++;
}
result[0]=str[0];
n++;
for(i=1;i<num;i++)
{
int flag=0;
for(int j=0;j<n;j++)
{
if(str[i]==result[j])
{
flag=1;
break;
}
}
if(flag==0)
{
result[n]=str[i];
n++;
}
}
for(int j=0;j<n;j++)
{
cout<<result[j]<<endl;
}
return 0;
}
上面是半年前最笨的思路,下面是最新的想法
#include<iostream>
#include<string>
#include<map>
using namespace std;
#define MAX 1001
map<string,int> mat;
map<string,int> flag;
int main()
{
string str[MAX];
string result[MAX];
int i=0;
int num=0; //總單詞個數
while(cin>>str[i])
{
// p[i]=&str[i][0]; //第i個指針指向第i個單詞的首元素
mat[str[i]] ++;
flag[str[i]] = 0;
num++;
i++;
}
for(i = 0;i < num;i++)
{
if(mat[str[i]]>=1&&flag[str[i]] == 0)
{
cout<<str[i]<<" ";
flag[str[i]] = 1;
}
}
system("pause");
return 0;
}