二维指针 字符串快速排序 快排参数有问题 可以自己写快排函数
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
#define BUFFER 1024
#define EXIT "exit\n" //define an exit code
int pstrcmp( const void *a, const void *b ) {
return strcmp( ((const char*)a), ((const char*)b) );
}
int main(void){
char **resstr=NULL;
char buf[BUFFER];
unsigned int count=0;
unsigned int i=0;
memset(buf,'\0',BUFFER);
printf("input some string:\n\n");
for(i=0;;i++){
if(fgets((char*)buf,BUFFER,stdin)!=NULL){
count++;
}
else{
printf("fgets error\n");
break;
}
if(strcmp(buf,(unsigned char*)EXIT)==0){
count--;
//printf("\ns:%d\n",count); //debug value of count
break;
}
resstr=(char**)realloc(resstr,count*sizeof(char*));
*(resstr+i)=(char*)calloc(strlen(buf)+1,sizeof(char));
strcpy(*(resstr+i),buf);
memset(buf,'\0',BUFFER);
}
qsort(resstr,count,sizeof(char*),pstrcmp);//快排算法存在问题,需修改
putchar(0x0a);
// leaving a blank line to separate source string and string after sorted.
for(i=0;i<count;i++){
printf("%s",*(resstr+i));
}//printf each line end with \n
return 0;
}