先给出代码:
//实现让字符串按照首字符串比较的顺序有序输出
#include<stdio.h>
#include<string.h>
void sort(char *name[],int n);
void print(char *name[],int n);
int main()
{
char *name[]={"Follow me","Bacic","Great Wall","FORTRAN","Computer Design"};//创建一个指针数组每个指针变量指
//向一个字符串的首字母
int n=5;
sort(name,n);
print(name,n);
return 0;
}
void sort(char *name[],int n)
{
char *temp;
int i,j,k;
for(i=0;i<n-1;i++)//用比较法进行排序
{
k=i;
for(j=i+1;j<n;j++)
{
if(strcmp(name[k],name[j])>0)
{
k=j;//迭代找出最大的字符数组
}
}
if(k!=i)//如果最大的字符数组不是第i个,就交换name i和name k中放的地址
{
temp=name[i];//temp本来就是指针变量,可以用来作为媒介发生地址交换
name[i]=name[k];
name[k]=temp;
}
}
}
void print(char *name[],int n)
{
int i;
for(i=0;i<n;i++)
{
printf("%s\n",name[i]);//
}
}
算是比较复杂的指针运用了