10815 - Andy's First Dictionary

1y

#include<stdio.h>
#include<string.h>
#include<ctype.h>
#include<stdlib.h>
char sentence[200];
char dictionary[5000][20];
char words[20];
int cmp_string(const void*_a,const void*_b)
{
 char *a=(char*)_a;
 char *b=(char*)_b;
 return strcmp(a,b);
}
int getwords(int i,int l)
{
 int n=0;
 words[0]='\0';
 while(!isalpha(sentence[i])&&i<l)
  i++;
 while(isalpha(sentence[i])&&i<l)
  words[n++]=tolower(sentence[i++]);
 words[n]='\0';
 return i;
}
int main()
{
 int i,j,found,l,ld,n=0;
 while(gets(sentence))
 {
  l=strlen(sentence);
  for(i=0;i<l;)
  {
   i=getwords(i,l);
   ld=strlen(words);
   if(ld!=0)
   {
     found=0;
     for(j=0;j<n;j++)
       if(strcmp(words,dictionary[j])==0)
    found=1;
    if(!found)
      strcpy(dictionary[n++],words);
   }
  }
 }
 qsort(dictionary,n,sizeof(dictionary[0]),cmp_string);
 for(i=0;i<n;i++)
  printf("%s\n",dictionary[i]);
 return 0;
}

你可能感兴趣的:(first)