voidsort(char* s[],int n){char* tmp =0;int i=0,j=0;for( i =0; i < n-1; i++){for(j =0; j < n-i-1; j++){if(strcmp(s[j],s[j+1])>0)//核心进行比较开头字符的大小进行冒泡排序{
tmp = s[j];
s[j]= s[j+1];
s[j +1]= tmp;}}}}intmain(){char* wString[]={"implementation","language","design","fortran","computer "};int i, n =5;printf("The words are :\n");for(i =0; i < n; i++)printf("\twString[%d]=%s\n", i, wString[i]);printf("After sort,The words are:\n");sort(wString, n);/* 调用函数,对指针数组 wString 中的 n 个字符串排序 */for(i =0; i < n; i++)printf("\twString[%d]=%s\n", i, wString[i]);}
算法二,二维数组
strings(char a[][10],int n)//使用二维数组{int i, j, k;char* p[5];char tmp[20];//暂存空间for( i =0; i < n; i++){
p[i]= a[i];//存入指针数组管理}for( i =0; i < n-1; i++){for( j =0; j < n-1-i; j++){if(strcmp(p[j],p[j+1])>0){strcpy(tmp, p[j]);strcpy(p[j], p[j+1]);strcpy(p[j+1], tmp);}}}}