按照字母表的顺序a,b,c,...字符串排序
#include<iostream>
using namespace std;
void print(char (*s)[20]);
void sort(char s[][20]);
void main()
{
char str[4][20]={{"yanghailin"},{"is"},{"a good person!"},{"lala"}};
print(str);
sort(str);
}
void print(char (*s)[20])
{
for(int i=0;i<4;i++)
cout<<*s++<<endl;
}
void sort(char s[][20])
{
int i,j;
char *ptr[4];
char *tmp;
for ( i=0;i<4;i++)
{
ptr[i]=s[i];
}
for(i=0;i<3;i++)
for( j=i+1;j<4;j++)
if (strcmp(ptr[i],ptr[j])>0)
{
tmp=ptr[i];
ptr[i]=ptr[j];
ptr[j]=tmp;
}
cout<<"排序后~~~~~~~~~~~~~~~~~~~~~~~\n";
for(i=0;i<4;i++)
cout<<ptr[i]<<endl;
}
分析:注意二维数组作为形参传递的表达形式,用字符数组指向每一行的起始,通过操作指针来实现排序而不是实际的内存空间