#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 6
int stucmp1(char *s1,char *s2){
//按照ASCII码比较字符串s1和s2,返回-1表示s1小于s2,0表示相等,1表示s1大于s2;(类似于strcmp()函数)
int i=0;
if(strcmp(s1,s2)>0){
i=1;
}else if(strcmp(s1,s2)<0){
i=-1;
}
return i;
}
int stucmp2(char *s1,char *s2){//照字符串长度比较s1和s2,返回-1表示s1长度小于s2,0表示长度相等,1表示s1长度大于s2;
int i=0;
//int t1=strlen(s1);
//int t2=strlen(s2);
//if(t1-t2>0){
if(strlen(s1)-strlen(s2)>0){
i=1;
//}else if(t1-t2<0){
}else if(strlen(s1)-strlen(s2)<0){
i=-1;
}
return i;
}
void stu_sort(char *str[],int n,int (*f)(char*,char*)){
int i,j,k;
char *t;
for(i=0;i<n-1;i++){
k=i;
for(j=i+1;j<n;j++){
if(f(str[j],str[k])<0)
k=j;
}
t=str[k];
str[k]=str[i];
str[i]=t;
}
}
int main()
{
char *stus[N]={"Yang", "Li", "ZhaoL", "Qian","Sun","ChenMM"};
int i=0;
stu_sort(stus, N, stucmp1);
for(i=0;i<N;i++){
printf("%s\n", stus[i]);
}
stu_sort(stus, N, stucmp2);
for(i=0;i<N;i++){
printf("%s\n", stus[i]);
}
return 0;
}