#include <stdio.h>
void print(char **,int);
void sort(char **,int);
int mystrcmp(char *,char *);
int main(int argc, char *argv[])
{
char ch[5][20],*p_ch[5],**p;
int i;
for (i = 0; i < 5; i++)
{
p_ch[i] = ch[i];
}
p = p_ch;
printf("please input 5 string(5 line):\n");
for(i = 0; i < 5; i++)
{
scanf("%s",*p++);
}
printf("the source is :\n");
p = p_ch;
print(p,5);
printf("the sort result:\n");
p = p_ch;
sort(p,5);
p = p_ch;
print(p,5);
system("pause");
return 0;
}
void print(char **p,int n)
{
int i;
for (i = 0; i < n; i++)
{
printf("%s\n",*p++);
}
}
void sort(char **p,int n)
{
int i,j,k;
char *temp;
for (i = 0; i < n - 1; i++)
{
k = i;
for (j = i + 1; j < n; j++)
{
if (mystrcmp(*(p + k),*(p + j)) > 0)
{
k = j;
}
}
if (k != i)
{
temp = *(p + i);
*(p + i) = *(p + k);
*(p + k)= temp;
}
}
}
int mystrcmp(char *ch1,char *ch2)
{
int result = 0;
while (*ch1 && *ch2)
{
if (*ch1 == *ch2)
{
ch1++;
ch2++;
continue;
}
else
{
result = *ch1 - *ch2;
break;
}
}
return result;
}
|