排序串的數組


將串集合重新按順序排列。將串讀入一個緩沖器,這個緩沖器足以容納所有的串,設置指針來指向數組中的每個串,然后重排這些指針,將最小串的指針放在數組的首位,將次小串的指針放在數組的第二位,依次類推 。

 #include<stdio.h>

#include < stdlib.h >
#include
< string .h >
#define  Nmax 1000
#define  Mmax 10000
char  buf[Mmax]; int  M = 0 ;

int  compare( void   * i, void   * j)
{
     
return  strcmp( * ( char   ** )i, * ( char   ** )j);
}
    
int  main()
{
  
int  i,N;
  
char *  a[Nmax];
  
for (N = 0 ; N < Nmax; N ++ )
  {
       a[N]
=& buf[M];
       
if (scanf( " %s " ,a[N]) == EOF)  break ;
       M
+= strlen(a[N]) + 1 ;
     }
     qsort(a,N,
sizeof ( char * ),compare);
     
for (i = 0 ; i < N; i ++ ) printf( " %s\n " ,a[i]);
     
return   0 ;
}

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com