免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2083 | 回复: 6

发现在cygwin下,qsort返回的排序结果竟然是错的! [复制链接]

论坛徽章:
0
发表于 2006-06-12 14:33 |显示全部楼层
一开始还以为是程序写错了,后来在真实的Linux环境下运行就是ok的。

请问各位大侠,知道是什么原因么

论坛徽章:
0
发表于 2006-06-12 17:39 |显示全部楼层
是否和字节序有关阿

论坛徽章:
0
发表于 2006-06-13 07:59 |显示全部楼层
贴代码看看

论坛徽章:
0
发表于 2006-06-13 09:25 |显示全部楼层
以下代码的输出结果(在真是的Linux环境下测试时ok的):

Before sort: abiekdjfadkf
After sort: fikjkbedfdaa



#include <stdio.h>
#include <stdlib.h>
#include <string.h>


int sort_string(const void *arg1,const void *arg2)
{
        return ( *(char *)arg1 > *(char *)arg2 )? 0:1;
}

int main ()
{
  char p[] = "abiekdjfadkf";

  printf("Before sort: %s\n", p);

  qsort( &p, strlen(p), sizeof(char), sort_string );

  printf("After sort: %s\n", p);

  return 0;
}

论坛徽章:
0
发表于 2006-06-14 12:41 |显示全部楼层
顶一下先

论坛徽章:
0
发表于 2006-06-14 12:58 |显示全部楼层
原帖由 clilye 于 2006-6-14 12:41 发表
顶一下先


  1. int sort_string(const void *arg1,const void *arg2)
  2. {
  3.           return ( *(char *)arg1 > *(char *)arg2 )? 1:0;
  4. }
复制代码


應該是這樣 ?

==

论坛徽章:
0
发表于 2006-06-15 08:39 |显示全部楼层
qsort( &p, strlen(p), sizeof(char), sort_string );
错误, 虽然这里对于字符可以。
qsort( p, strlen(p), sizeof(char), sort_string );
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP