数组指针做的:
#include<stdio.h>
#include <string.h>
char *compositor( char (*s)[20])
{
int i,j;
char a[20];
for(i=0;i<10;i++)
{
for(j=0;j<10-i;j++)
{
if(strcmp(*(s+j),*(s+j+1))>0)
{
strcpy(a,*(s+j));
strcpy(*(s+j),*(s+j+1));
strcpy(*(s+j+1),a);
}
}
}
return (char *) s;
}
void main(void)
{
char str[10][20];
char (*q)[20];
int n;
q=str;
printf("please input 10 strings:/n");
for(n=0;n<10;n++,q++)
gets(*q);
q-=10;
printf("after compositor :/n");
compositor(q);
for(n=0;n<10;n++,q++)
printf("%s/n",q);
}
指针数组做的:
#include <stdio.h>
#include<string.h>
char *sort(char *p[10])
{
char *temp;
int n,j;
for(n=0;n<10;n++)
{
for(j=n+1;j<10;j++)
{
if(strcmp(p[n],p[j])>0)
{
temp=p[n];
p[n]=p[j];
p[j]=temp;
}
}
}
return *p;
}
void shi_shier(void)
{
char *str[]={"How are you","Fine,thankyou","Hello","Hi","Good moning","Happy","Sad","Nokia","Moto","AnyCall"};
int i;
printf("before sort:/n");
for(i=0;i<10;i++)
{
printf("%s/n",str[i]);
}
sort(str);
printf("/n/nafter sort:/n");
for(i=0;i<10;i++)
{
printf("%s/n",str[i]);
}
}