輸入英文段落,刪除其中的重複單詞。即每個單詞只出現一次


輸入英文段落,刪除其中的重複單詞。即每個單詞只出現一次


#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;
}


發佈了21 篇原創文章 · 獲贊 1 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章