






#include <stdio.h>
#include <string.h>
const int N = 5;
void selectSort(char str[][20], int n ); // 函数声明,形参str是二维数组名 
int main() {
	char name[][20] = {"Bob", "Bill", "Joseph", "Taylor", "George"};
	int i;
	
	printf("输出初始名单:\n");
	for(i=0; i<N; i++)
		printf("%s\n", name[i]);
		
	selectSort(name, N);  // 调用选择法对name数组中的字符串排序
	
	printf("按字典序输出名单:\n");
	for(i=0; i<N; i++)
		printf("%s\n", name[i]);
	
	return 0;
} 
// 函数定义
// 函数功能描述:使用选择法对二维数组str中的n个字符串按字典序排序 
void selectSort(char str[][20], int n) {
     int k,i,j,sign;
     char temp[20]=" ";
     for(i=0;i<=n;i++)
     {k=i;
     {for(j=i+1;j<n;j++)
     sign=strcmp(str[j],str[k]);
     if(sign<0){
     	k=j;
	 }
	 }
	 if(k!=i){
	 	strcpy(temp,str[i]);
	 	strcpy(str[i],str[k]);
	 	strcpy(str[k],temp);
	 	
	 }
	 }
}
原文:https://www.cnblogs.com/YUyu0804/p/14128029.html