#include"string.h"
void main()
{
void order(char *a,char *b) ;
char a[10][80];
char c;
int i,j;
printf("請輸入10個字符串:\n");
for(i=0;i<10;i++)
gets(a[i]); //每次輸入壹個字符串
for(i=0;i<9;i++)
for(j=i+1;j<10;j++)
order(a[i],a[j]); //從第壹個字符串開始逐個與後面的字符串比較
printf("排序後的字符串為:\n");
for(i=0;i<10;i++)
printf("%s\n",a[i]);
}
void order(char *a,char *b)
{
int i,j,A,B,m,n;
int nLenEqual = 1;
char c;
A=strlen(a);
B=strlen(b);
if(A>B)
{
m=A;
n=B;
}
else
{
m=B;
n=A;
}
//m為長字符串的長度,n為短字符串的長度
for(j=0;j<n;j++)
{
if(*(a+j)>*(b+j)) //逐個字符比較
{
for(i=0;i<n;i++)
{
c=*(a+i);
*(a+i)=*(b+i);
*(b+i)=c;
}
nLenEqual = 0;
break;
}
// break; //交換後即可退出循環
}
for(i=n;i<m;i++)
{
if(nLenEqual == 0)
{
if(A>B)
{
b[i]=a[i];
a[i]='\0';
}
else
{
a[i]=b[i];
b[i]='\0';
}
}
else
{
if(A>B)
{
b[i]=a[i];
a[i]='\0';
}
}
}
a[m]=b[m]='\0';
}