UVA 10815 - Andy's First Dictionary

来源:互联网 发布:电通安吉斯网络测评 编辑:程序博客网 时间:2024/05/16 01:21
#include <iostream>#include <algorithm>#include <string.h>#include <ctype.h>using namespace std;const int MAXLINE=5100;const int MAXCOUNT=2500;char a[MAXLINE][MAXCOUNT];int N;struct Tom{char words[1000];};Tom num[30000];void strlower( int A, int i){for(int j=0; j<A; j++){if(isalpha(a[i][j]))a[i][j]=tolower(a[i][j]);elsea[i][j]=' ';}}void incise(int n)//将字符串分割成单词{int i;int k=0;char *p=NULL;for(i=0; i<n; i++){p=strtok(a[i]," ");while(NULL!=p)//记录单词个数{strcpy(num[k++].words,p);p=strtok(NULL," ");}}N=k;}void Cout(){int j;for(int i=0; i<N; i++){for(j=i+1; j<N; j++){if(strcmp(num[i].words ,num[j].words )==0)continue;else break;}cout<<num[i].words<<endl;i=j-1;}}bool cmp(Tom  arr1, Tom  arr2){    return strcmp(arr1.words, arr2.words) < 0;}int main(){int i=0;int A;int size=0;Tom *pnum=num;while(cin.getline(a[i++],MAXCOUNT)){A=strlen(a[i-1]);strlower( A, i-1);//换小写,并处理非字母!}incise(i);std::sort(num,num+N,cmp);Cout();return 0;}

原创粉丝点击