- #include<stdio.h>
- #include<string.h>
- #define LIM 10
- #define LENGTH 80
- void ststr(char *string[],int n);
- int main(void){
- char string[LIM][LENGTH];
- char *ptr[LIM];//指针变量数组
- int i = 0;//用来记录输入了多少行
- int j = 0;//用来记录输出了多少行
- while(i<LIM && (gets(string[i]))!=NULL && string[i][0]!='\0'){ //不能超过行数,输入要成功,如果一行开始就是终止符则结束
- ptr[i] = string[i];//指针指向输入字串
- ++i;
- }
- ststr(ptr,i);//排序,排序重新安排ptr而不改变string高效简便
- for(j=0;j<i;j++){ //输出排序后的字串
- puts(ptr[j]);
- }
- return 0;
- }
- void ststr(char *string[],int n){
- int start;
- int top;
- for(start=0;start<n-1;start++){ //n个数排序,只需要排n-1次即可
- for(top=start+1;top<n;top++){
- if(strncmp(string[start],string[top],1)>0){
- char *temp;
- temp = string[start];
- string[start] = string[top];
- string[top] = temp;
- }
- }
- }
- }