二维指针 字符串快速排序 快排参数有问题 可以自己写快排函数

xspace_time 2013-07-18 11:15:11
#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;
}
...全文
73 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
水平不流 2013-07-18
  • 打赏
  • 举报
回复
第一个参数是待排元素数组的首地址. 你用了一个二维指针做啥? 这个字符串,应该是一个指针数组才是. 个人感觉.

64,692

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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