AOAPC I: Beginning Algorithm Contests (Rujia Liu) :: Volume 1. Elementary Problem Solving :: String
// 10815 - Andy's First Dictionary
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <string>
#include <cctype>
using namespace std;
int cmp(const void* a, const void* b)
{
return strcmp((char*)a, (char*)b);
}
int main(void)
{
string temp;
int i, c, cnt=0, first=1;
char s[20], word[5000][20];
while((c=getchar()), c!=EOF)
{
if(isalpha(c))
{
if(first)
{
temp = "";
temp += (char)tolower(c);
first = 0;
}
else
{
temp += (char)tolower(c);
}
}
else if(temp != "")
{
strcpy(s, temp.c_str());
for(i=0; i<cnt; i++)
if(strcmp(s, word[i]) == 0)
break;
if(i == cnt)
strcpy(word[cnt++], s);
temp = "";
first = 1;
}
}
qsort(word, cnt, sizeof(word[0]), cmp);
for(i=0; i<cnt; i++)
cout << word[i] << endl;
return 0;
}