http://poj.org/problem?id=1318
字符串处理
//============================================================================
// Name : hello.cpp
// Author : key
// Version : 8
// Copyright : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================
#include <iostream>
#include <cstring>
#include <cstdio>
#include <cmath>
#include <queue>
#include <stack>
#include <string>
#include <algorithm>
#include <map>
using namespace std;
#define NUM_INF 0x7FFFFFFF
int cmp( const void *_a , const void *_b )
{
char* a=(char*)_a;
char* b=(char*)_b;
return *a-*b;
}
int cmp_str( const void *_a , const void *_b )
{
char* a=(char*)_a;
char* b=(char*)_b;
return strcmp(a,b);
}
int main()
{
freopen("a.in","r",stdin);
char word[2000][10],sorted[2000][10];
int i;
int j;
i=0;
while(scanf("%s",&word[i])!=EOF)
{
if(word[i][0]=='X')
{
break;
}
i++;
}
// qsort(word,i+1,sizeof(word[0]),cmp_str);
for(j=0;j<i;j++){
strcpy(sorted[j],word[j]);
qsort(sorted[j],strlen(sorted[j]),sizeof(char),cmp);
// sort(sorted[j],sorted[j]+strlen(sorted[j]));
}
char s[10];
while(scanf("%s",s)!=EOF)
{
if(s[0]=='X')break;
qsort(s,strlen(s),sizeof(char),cmp);
// sort(s,s+strlen(s));
int f=0;
for(j=0;j<i;j++)
{
if(strcmp(sorted[j],s)==0){
f=1;
printf("%s\n",word[j]);
}
}
if(!f)
printf("NOT A VALID WORD\n");
printf("******\n");
}
return 0;
}