/**本题的意思就是统计文章中的单词并排序
*且忽略其大小写,相同的单词只输出一次
*/
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <iostream>
using namespace std;
#define MAXL 201
#define MAXW 2001
char str[MAXW],*word[MAXW];
int pstrcmp(const void *a, const void *b){
return strcmp(*(char *const *)a, *(char *const *)b);
}
int main(int argc, char const *argv[])
{
char c;
int t, cas = 0, i;
while(gets(str)){
word[cas] = new char[MAXW];
t = 0;
for(int i=0; str[i]!='\0'; i++){
if((str[i]>='a' && str[i]<='z')||(str[i]>='A' && str[i]<='Z')){
if(str[i]>='A' && str[i]<='Z') str[i] += 32;
word[cas][t++] = str[i];
}else if((str[i+1]>='a' && str[i+1]<='z')||(str[i+1]>='A' && str[i+1]<='Z')){
word[cas][t++] = '\0';
t = 0;
cas++;
word[cas] = new char[MAXL];
}
}
word[cas++][t] = '\0';
}
qsort(word,cas,sizeof(char*),pstrcmp);
for(i=0; i<cas-1; i++){
if(strcmp(word[i],word[i+1])!=0 && word[i][0]>='a' && word[i][0]<='z')
printf("%s\n",word[i]);
}
printf("%s\n",word[i]);
return 0;
}
uva_10815-Andy's First Dictionary
最新推荐文章于 2022-01-10 15:28:09 发布