程序构造了一个字符串数组的排序函数,在该函数中,同样使用strcmp()函数来实现比较,参数是指向指针的指针。
#include <stdio.h> //头文件
#include <stdlib.h>
#include <string.h>
void strsort(char **p,int n); //函数声明
int main()
{
int i;
char *s[]={ //初始化
"C",
"Basic",
"Foxpro",
"Visual Studio"
};
strsort(s,sizeof(s)/4); //排序
printf("\n排序后的数据:\n");
for(i=0;i<sizeof(s)/4;i++) //输出
{
printf("%s\n",s[i]);
}
system("pause");
return 0;
}
void strsort(char**p,int n) //自定义函数,这里认为二重指针有点多此一举,可参考实例69
{
int i,j;
char *pstr;
for(i=0;i<n-1;i++)
{
for (j=i+1;j<n;j++)
{
if (strcmp(*(p+i),*(p+j))>0) //比较
{
pstr=*(p+j);
*(p+j)=*(p+i);
*(p+i)=pstr;
}
}
}
}