一个实现:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void){
char * str [100]; //创建一个含100个字符指针的数组,可以存储100个字符串的地址
int i=0;
str[i] = (char * ) malloc(sizeof(char)*21); //分配动态内存
printf("Enter word:");
// scanf("%s",str[i]);
gets(str[i]); //获取一个字符串输入
while(str[i]!=NULL&&str[i][0]!='\0'){ //如果输入是一个空字符串 则获取下一个字符串输入存储到字符指针数组
i++;
str[i] = (char * ) malloc(sizeof(char)*21);
printf("Enter word:");
gets(str[i]);
// scanf("%s",str[i]);
}
// int k,p;
// printf("origin str: \n");
// for(k=0;k<i;k++){
// printf("%s\n",str[k]);
// }
char temp[21];
//遍历数组中的指向的字符串,按指向的字符串的ASCII码大小排序这个数组
for(k=0;k<i-1;k++){
for(p=k;p<i;p++){
if(strcmp(str[k],str[p])>0){
strcpy(temp,str[k]);
strcpy(str[k],str[p]);
strcpy(str[p],temp) ;
}
}
}
//打印结果
printf("In sorted order: ");
for(k=0;k<i;k++){
printf("%s ",str[k]);
}
return 0;
}