#include
#include
#include
#define WORD_LEN 20
#define P_NUM 10
int read_line(char s[],int n);
int compare_str(const void *p,const void *q);
int main(void)
{
char word[WORD_LEN];
char *str[P_NUM];
int n,i=0,num_remind=0;
for(;;){
if(num_remind==P_NUM){
printf("No space left");
break;
}
printf("Enter word:");
n=read_line(word,WORD_LEN);
if(n==0)
break;
str[i]=malloc(strlen(word)+1);
if(str[i]==NULL){
printf("No space left.\n");break;
}
strcpy(str[i],word);
num_remind++;i++;
}
qsort(str,num_remind,strlen(word),compare_str);
//str是待排序数组
//num_remind是数组元素的个数
//strlen(word)是元素(存放字符串的字符数组)的大小
//compare_str是比较函数
for(i=0;i<num_remind;i++)
printf(" %s\n",str[i]);
return 0;
}
int read_line(char s[],int n)
{
int ch,i=0;
while((ch=getchar())!='\n')
if(i<n)
s[i++]=ch;
s[i]='\0';
return i;
}
int compare_str(const void *p,const void *q)
{
return strcmp((const char *)p,(const char *)q);
}
输出后还是原顺序