给出一个完整的句子,这个句子中不包含不可见字符或者空格,于是在这个句子中有许多不同的单词。一个单词是指一串连续的最长的英文字母(大写或小写)。例如"#abc#"中,"abc"就是一个单词,而"ab","bc"都不算单词。
Input
输入包含多组数据 输入数据第一行是一个句子,只包含可见字符(不包含空格)。句子长度不超过 100。
Output
按单词出现的顺序输出不同的单词。如果一个单词出现多次则只有第一次出现时输出。
Sample Input
Orz_YaYaMao_Orz_Daxia_Orz_EveryOneSample Output
Orz YaYaMao Daxia EveryOne
代码:
#include<iostream>
#include<cstdio>
#include<string>
#include<cstring>
#include<cctype>
using namespace std;
int main(void)
{
string s,a[110],b;
//char a[110][110],b[110]
int i,j,t,k,l;
while(cin>>s)
{
t=s.length();
for(i=0,k=-1;i<=t;i++)
{
if(isalpha(s[i]))
{
b+=s[i];//string可以直接运算
}
else
{
if(b.size()==0)
continue;
//b[++j]='\0';
for(l=0;l<=k;l++)
{
if(b==a[l])
{
break;
}
}
//printf("l=%d,k=%d\n",l,k);
if(l>k)
{
a[++k]=b;
}
b="";//清空b
}
}
for(i=0;i<=k;i++)
{
cout<<a[i]<<endl;
}
}
return 0;
}