自己对于二维型字符数组理解不够透彻
void paixu(char s[5][6])
{
int i,j;
char *p,temp[10];
p=temp;
for(i=0;i<9;i++)
for ( j = 0; j<9-i; i++)
if(strcmp(s[j],s[j+1])>0)
{
strcpy(p,s[j]);
strcpy(s[j],s[+j+i]);
strcpy(s[j+i],p);
}
}
其实你把它当一个字符串数组理解就可以了,整个代码就是这个逻辑实现的。
这就是个冒泡排序,从小到大排序
用strcmp比较相邻两个字符串的大小,如果前一个字符串更大,那么用strcpy进行交换,p是临时交换字符串
这个是要实现一个五个等长字符串的排序,第一种方法是使用二维数组来完成
char s[5][6] 也可以写为 char *s[5],因此他也就是5个字符串组成的数组。把字符串作为单个类型,除了具体的操作实现外,跟int s[5]在算法上啥区别了