二维字符串排序 快排参数存在问题

xspace_time 2013-07-18 11:07:39

#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(xstrcmp(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(xstrlen(buf)+1,sizeof(char));
xstrcpy(*(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;
}
...全文
57 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧