描述
输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照从小到大的顺序输出这些单词,要求重复的单词只输出一次。(区分大小写)
格式
一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。
输出格式
按字典序输出这些单词,重复的单词只输出一次。
样例
输入样例
She wants to go to Peking University to study Chinese
输出样例
Chinese
Peking
She
University
go
study
to
wants
#include <stdio.h>
#include <string.h>
int main()
{
int k,i,j,len,n;
char str[105][50]={0},a[1000]={0},temp[100];
gets(a);
len = strlen(a);//数组a存的是句子
for(i = 0,j = 0,k = 0;i < len;i++)
{
if(a[i]!=' ')
{
str[j][k] = a[i];// str每一行一个单词
k++;
if(a[i+1]==' ')
{
j++;
k = 0;
}
}
else
continue;
}
n = j;
for(i = 0; i <= n-1; i++)//排序
{
for(j = i+1; j <= n; j++)
{
if(strcmp(str[i],str[j])>0)
{
strcpy(temp,str[i]);
strcpy(str[i],str[j]);
strcpy(str[j],temp);
}
}
}
for(i = 0;i <= n;i++)
{
if(strcmp(str[i],str[i+1])==0)
continue;
for(j = 0;str[i][j]!='\0';j++)
printf("%c",str[i][j]);
printf("\n");
}
return 0;
}
该程序接收一行单词序列,按照字典序排序并去重,输出排序后的单词。示例中输入为'She wants to go to Peking University to study Chinese',输出为'Chinese Peking She University go study to wants'。此程序涉及字符串处理和排序算法。
648

被折叠的 条评论
为什么被折叠?



