习题8-7 字符串排序(C语言实现)
方法一:选择排序
#include <stdio.h>
#include <string.h>
void sort(char c[][81], int n)
{
int i,j,k;
char t[81];
for(i=0; i<n-1; i++)
{
k=i;
for(j=i+1; j<n; j++)
if(strcmp(c[k],c[j]) > 0)
k=j;
if(k!=i)
{
strcpy(t,c[i]);
strcpy(c[i],c[k]);
strcpy(c[k],t);
}
}
}
int main()
{
int i;
char c[5][81]={0};
for(i=0; i<5; i++)
scanf("%s",c[i]);
sort(c,5);
printf("After sorted:\n");
for(i=0; i<5; i++)
printf("%s\n",c[i]);
return 0;
}
方法二:系统函数qsort
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int cmp(const void *a,const void *b)
{
return strcmp((char*)a, (char*)b);
}
int main()
{
int i;
char c[5][81]={0};
for(i=0; i<5; i++)
scanf("%s",c[i]);
qsort(c,5,sizeof(c[0]),cmp);
printf("After sorted:\n");
for(i=0; i<5; i++)
printf("%s\n",c[i]);
return 0;
}