Problem 2027 单词问题
Accept: 386 Submit: 1397
Time Limit: 1000 mSec Memory Limit : 32768 KB
Problem Description
给出一个完整的句子,这个句子中不包含不可见字符或者空格,于是在这个句子中有许多不同的单词。一个单词是指一串连续的最长的英文字母(大写或小写)。例如"#abc#"中,"abc"就是一个单词,而"ab","bc"都不算单词。
Input
输入包含多组数据输入数据第一行是一个句子,只包含可见字符(不包含空格)。句子长度不超过 100。
Output
按单词出现的顺序输出不同的单词。如果一个单词出现多次则只有第一次出现时输出。
Sample Input
Orz_YaYaMao_Orz_Daxia_Orz_EveryOne
Sample Output
OrzYaYaMaoDaxiaEveryOne
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
char str[105];
char str1[105][105];
int len;
int j,k;
while(scanf("%s",str)!=EOF)
{
getchar();
len=strlen(str);
j=0;
k=0;
for(int i=0; i<len; i++)
{
if((str[i]>='A'&&str[i]<='Z')||(str[i]>='a'&&str[i]<='z'))
{
str1[j][k]=str[i];
k++;
}
else
{
if(strlen(str1[j])!=0)
j++;
k=0;
}
}
for(int i=0; i<=j; i++)
{
if(i==0)
puts(str1[i]);
else
{
if(strlen(str1[i])==0)
break;
int kk=1;
for(int l=i-1; l>=0; l--)
{
if(strcmp(str1[l],str1[i])==0)
{
kk=0;
break;
}
}
if(kk)
puts(str1[i]);
}
}
memset(str,0,sizeof(str));
memset(str1,0,sizeof(str1));
}
return 0;
}