CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C语言

紧急求助

楼主fashionzhou(自由港)2005-04-02 21:59:07 在 C/C++ / C语言 提问

用指针和指针数组编写一个程序:实现下述功能:先输入5个字符串,对每个字符串按字符进行从小到大排序,然后再对这5个字符串进行从小到大的排序 问题点数:20、回复次数:4Top

1 楼nasi00(莫傲·逍遥)回复于 2005-04-02 22:28:58 得分 8

先定义一个struct:  
   
  struct   _str   {  
        char   s[MAX];  
  };  
   
  然后:  
   
  _str   a[5];  
   
  在输入以后,就:  
   
  for(i=0;i<5;i++)  
  {  
          std::sort(a[i].s,   a[i].s+strlen(a[i].s)   );  
  }  
   
  然后再排_str:  
   
  std::sort(a,   a+5,   cmp);  
   
  其中:  
   
  bool   cmp(_str   p,   _str   q)  
  {  
          if(strcmp(p.s,   q.s)   <   0)     return   true;  
          return   false;  
  }  
   
  提供一个思路,也没写程序。如果是C语言的话,就用stdlib.h里面的qsort()函数吧。Top

2 楼zhangfjj(小张)回复于 2005-04-02 23:03:55 得分 8

闲来无事,随便写写  
   
   
  /*用指针和指针数组编写一个程序:实现下述功能:先输入5个字符串,  
  对每个字符串按字符进行从小到大排序,然后再对这5个字符串进行从小到大的排序*/  
  #include   <string.h>  
  #include   <stdio.h>  
  void   strsort(char   str[],int   size)/*对字符串中字符排序*/  
  {  
  int   i,j,min,t;  
  for(i=0;i<size-1;i++)  
  {  
  min=i;  
  for(j=i+1;j<size;j++)  
  {  
  if(str[j]<str[min])  
        min=j;  
  }  
  if(min!=i)  
  {  
  t=str[min];  
  str[min]=str[i];  
  str[i]=t;  
  }  
  }  
  }  
  void   strpsort(char   *str[],int   size)/*对字符串数组进行排序*/  
  {  
  int   i,j,min;  
  char   *t;  
  for(i=0;i<size-1;i++)  
  {  
  min=i;  
  for(j=i+1;j<size;j++)  
  {  
  if(strcmp(str[j],str[min])<0)  
  {  
  t=str[j];  
  str[j]=str[min];  
  str[min]=t;  
  }  
  }  
  }  
  }  
  int   main()  
  {  
  char   str1[5][256];  
  char   *str[5];  
  int   i;  
  for(i=0;i<5;i++)  
  {  
  printf("please   input   %dth   string:   ",i+1);  
  str[i]=str1[i];  
  gets(str[i]);  
  }  
  printf("\n   before   sorted   on   each   string:\n");/*不笑,蹩足的英语*/  
  for(i=0;i<5;i++)  
  {  
  printf("%dth   string   is:   %s\n",i+1,str[i]);  
  }  
  printf("\n   after   sorted   on   each   string:\n\n");  
  for(i=0;i<5;i++)  
  {  
  strsort(str[i],strlen(str[i]));  
  printf("%d   th   string   is:   %s\n",i+1,str[i]);  
  }  
      strpsort(str,sizeof(str)/sizeof(char   *));  
       
      for(i=0;i<5;i++)  
  {  
  printf("%d   th   string   is:   %s\n",i+1,str[i]);  
  }  
  return   0;  
  }Top

3 楼MagicCarmack(MagiC++)回复于 2005-04-03 01:10:25 得分 4

楼上写得不错Top

4 楼fashionzhou(自由港)回复于 2005-07-03 22:12:06 得分 0

还有其他的吗?Top

相关问题

  • 紧急,紧急!
  • !!!!!!!!!!!!!紧急
  • !!紧急!!
  • 紧急~~~~~~~~~~~~~~~~~~
  • 紧急~~~~~~~~~~~~~~~~~~
  • 紧急!!!
  • 紧急!!!
  • 紧急
  • 紧急
  • 紧急

关键词

  • 字符
  • 排序
  • 指针
  • 字符串
  • 输入
  • 进行从小到大
  • struct
  • str
  • char

得分解答快速导航

  • 帖主:fashionzhou
  • nasi00
  • zhangfjj
  • MagicCarmack

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo