2301: 串的基本操作二(串)
Description
输入一定量的单词(#结束),按字母顺序排序后输出,若有重复则只保留一个。
Input
Output
Sample Input
hello
I
how
fine
free
if
free
final
full
all
aware
#
Sample Output
all
aware
final
fine
free
full
hello
how
I
#include<stdio.h>
#include<string.h>
int main()
{
int i=0,j,k,len,m;
char s[99][99],tm[99];
int t;
while(~scanf("%s",&s[i]))
{
if(s[i][0]=='#')
break;
if(s[i][0]>='A'&&s[i][0]<='Z')//uppercase judgement
s[i][0]+=32;
i++;
}
t=i;
for(i=0;i<t;i++)
{
for(j=0;j<t-1-i;j++)
{
if(strcmp(s[j],s[j+1])>0) //using the strcmp comparison by order
{
strcpy(tm,s[j]);
strcpy(s[j],s[j+1]);//exchange order
strcpy(s[j+1],tm);
}
}
}
for(k=0;k<t;k++)
{
if(s[k][0]>='a'&&s[k][0]<='z'&&s[k][1]=='\0')//According to the test data,judge uppercase
{
s[k][0]-=32;
}
if(strcmp(s[k],s[k+1])!=0)
{
printf("%s\n",s[k]);
}
}
return 0;
}