单词排序

单词排序


时间限制: 1000 ms         内存限制: 65536 KB
提交数: 273     通过数: 90 

【题目描述】

输入一行单词序列,相邻单词之间由1个或多个空格间隔,请按照字典序输出这些单词,要求重复的单词只输出一次。(区分大小写)

【输入】

一行单词序列,最少1个单词,最多100个单词,每个单词长度不超过50,单词之间用至少1个空格间隔。数据不含除字母、空格外的其他字符。

【输出】

按字典序输出这些单词,重复的单词只输出一次。

【输入样例】

She  wants  to go to Peking University to study  Chinese

【输出样例】

Chinese
Peking
She
University
go
study
to
wants

【来源】


No

【代码】

#include 
    
    
     
        
#include
     
     
      
        
int main()  
{  
    char a[5000],b[100][50]={NULL},temp[50];//定义一个a数组,用来存放输入的单词组;定义一个二维数组b,用来存放一个一个的单词。  
    int i=0,j=0,h=0;  
    gets(a);  
    while(a[i]!='\0')//当a[i]不为空时  
    {  
        if(a[i]!=' ')//当a[i]是字母时  
        {  
            b[j][h]=a[i];//把a[i]放在b数组中的第j行的第h中 
            h++;  
            i++;  
        }  
        else if(a[i]==' '&&a[i+1]!=' ')//只有一个空格时,下一个字母存方放在b数组中的下一行的第一个  
        {  
            j++;//行数加一  
            i++;  
            h=0;  
        }  
        else//有多个空格时,继续遍历下一个字母  
        {  
            i++;  
            h=0;  
        }  
    }   
    for(i=0; i<=j; i++)  
        for(h=i; h<=j; h++)  
            if(strcmp(b[h],b[i])<0)//字符串排序。当s1
      
      
       
       s2时,返回正数。即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\0'为止。  
            {  
                strcpy(temp,b[h]);  
                strcpy(b[h],b[i]);  
                strcpy(b[i],temp);  
            }  
  for(i=0; i
       
       
      
      
     
     
    
    

【说明】

dev-c++运行成功


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值