1. #include<stdio.h> 
  2. #include<string.h> 
  3. #define LIM 10 
  4. #define LENGTH 80 
  5. void ststr(char *string[],int n); 
  6.  
  7. int main(void){ 
  8.     char string[LIM][LENGTH]; 
  9.     char *ptr[LIM];//指针变量数组 
  10.     int i = 0;//用来记录输入了多少行 
  11.     int j = 0;//用来记录输出了多少行 
  12.  
  13.     while(i<LIM && (gets(string[i]))!=NULL && string[i][0]!='\0'){//不能超过行数,输入要成功,如果一行开始就是终止符则结束 
  14.         ptr[i] = string[i];//指针指向输入字串 
  15.         ++i; 
  16.     } 
  17.     ststr(ptr,i);//排序,排序重新安排ptr而不改变string高效简便 
  18.     for(j=0;j<i;j++){//输出排序后的字串 
  19.         puts(ptr[j]); 
  20.     } 
  21.     return 0; 
  22. void ststr(char *string[],int n){ 
  23.     int start; 
  24.     int top; 
  25.     for(start=0;start<n-1;start++){//n个数排序,只需要排n-1次即可 
  26.         for(top=start+1;top<n;top++){ 
  27.             if(strncmp(string[start],string[top],1)>0){ 
  28.                 char *temp; 
  29.                 temp = string[start]; 
  30.                 string[start] = string[top]; 
  31.                 string[top] = temp; 
  32.             } 
  33.         } 
  34.     }