#include<iostream>
using namespace std;
void main()
{ void sort(char * name[], int n);
void print(char * name[], const int n);
char * name[] = {"BASIC","FORTRAN","C++","PASCAL","COBOL"};
int n = 5;
sort(name, n);
print(name, n);
}
void sort(char * name[], int n)
{ int k;
char * temp;
for(int i=0; i < n-1; i++)
{
k = i;
for(int j=i+1; j < n; j++)
//int strcmp ( const char * str1, const char * str2 ); //注意函数定义的参数是字符指针
//if (strcmp(*(*(name + j)),*(*(name + k))) < 0)
//if (strcmp(*(name + j), * (name + k)) < 0)
if (strcmp(*(name + j), *(name + k)) < 0) // 比较a[j]和a[k]存储的内容,其中a[j] = *(name + j),a[i] = *(name + i
k = j;
if (k != i)
{
temp = *(name + i);
*(name + i) = *(name + k);
*(name + k) = temp;
}
}
}
void print(char * name[], const int n)
{
char **p; //由于name中的元素都是指针类型,所以务必注意指向“指针”的指针必须用两个**声明,否则会出错。
for(p = name; p < name + n; p++)
cout<<*p<<" ";
cout<<endl;
}