Description
给出一个完整的句子,这个句子中不包含不可见字符或者空格,于是在这个句子中有许多不同的单词。一个单词是指一串连续的最长的英文字母(大写或小写)。例如"#abc#"中,"abc"就是一个单词,而"ab","bc"都不算单词。
输入包含多组数据 输入数据第一行是一个句子,只包含可见字符(不包含空格)。句子长度不超过 100。
按单词出现的顺序输出不同的单词。如果一个单词出现多次则只有第一次出现时输出。
Orz_YaYaMao_Orz_Daxia_Orz_EveryOne
Sample Output
Orz
YaYaMao
Daxia
EveryOne
#include <iostream>
#include <cstring>
#include <map>
#include <stdio.h>
using namespace std;
struct node
{
char ss[105];
}Node[1005];
int main()
{
char s[105];
char str[105];
while(gets(s))
{
int len=strlen(s);
int b=0;
for(int i=0;i<len;i++)
{
memset(str,0,sizeof(str));
int a=0;
int flag=0;
if((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
{
str[a++]=s[i++];
while((s[i]>='A'&&s[i]<='Z')||(s[i]>='a'&&s[i]<='z'))
{
str[a++]=s[i];
if((s[i+1]>='A'&&s[i+1]<='Z')||(s[i+1]>='a'&&s[i+1]<='z'))
{
i++;
}
else
break;
}
for(int j=0;j<b;j++)
{
if(strcmp(Node[j].ss,str)==0)
{
flag=1;
break;
}
}
if(!flag)
{
strcpy(Node[b++].ss,str);
cout<<Node[b-1].ss<<endl;
}
}
}
}
return 0;
}