UVA - 10815 Andy's First Dictionary

来源:互联网 发布:犀牛软件分割模型 编辑:程序博客网 时间:2024/05/19 14:15

UVA - 10815 Andy’s First Dictionary

题目大意:输入一段文字,以EOF结束,把这段文字中出现的单词以小写按字母顺序排列,类似字典那样。

解题思路:一个字符一个字符地读,isalpha( ) 判断是否为字母,是就存到数组中。qsort ( ) 排序,原理其实不太理解,照着小白写的。输出控制前后不相等的输出即可。

以 EOF 结束输入卡了好久……

#include<iostream>#include<cstring>#include<cstdio>#include<ctype.h>#include<algorithm>using namespace std;int cmp( const void *q , const void *w ) {    return strcmp( (char*)q , (char*)w );}int main() {    char a[100000][500] , b;    int i = 0 , j = 0;    memset(a,'\0',sizeof(a));    while( (b = getchar()) != -1 ) {          if(isalpha(b)) {          b = tolower(b);           a[i][j] = b;          j++;               }        else {          a[i][j] = '\0';          i++;          j = 0;        }    }    qsort(a , i , sizeof(a[0]),cmp);    for( j = 0; j < i ; j++ ) {       if(isalpha(a[j][0]))           if( strcmp( a[j] ,a[j+1]) )               cout << a[j] << endl;    }  return 0;}
0 0