关闭

关于C 中快排函数QSORT的用法

240人阅读 评论(0) 收藏 举报
分类:
我想用qsort 去排序这4个node,但是我不知道为什么这个就是没有任何作用,每个node代表一个文件,它有filename,filetype 以及大小,我想用根据filename去排序,求大声教我如何fix 程序,太感谢了

#include <errno.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#include <unistd.h>
#include <fcntl.h>
#include <unistd.h>
typedef struct  node
{
        char filename[255];
        char filetype[255];
        long ofilesize;
        long newfilesize;
}Node;
Node Line[4];

int cmp(const void *a,const void*b)
{

    return strcmp(((Node *)a)->filename,((Node *)b)->filename);
}

int main(){
  /*  int j=0;
    for(;j<4;j++){
       Line[j]=(Node*)malloc(sizeof(Node));
     
    }*/
    strcpy(Line[0].filename,"b.txt");
   strcpy(Line[1].filename,"c.txt");
    strcpy(Line[2].filename,"d.txt");
     strcpy(Line[3].filename,"e.txt");

    int i=0;
    for(;i<4;i++){
       strcpy(Line[i].filetype,"regular file");
       Line[i].ofilesize=i;
       Line[i].newfilesize=i;
      
    }    

for(i=0;i<4;i++)
    {
printf("File %s has type %s original size %ld new size %ld \n",Line[i].filename,Line[i].filetype,Line[i].ofilesize,Line[i].newfilesize);
        
    }

     qsort(Line,4,sizeof(Node),cmp);

for(i=0;i<4;i++)
    {
printf("File %s has type %s original size %ld new size %ld \n",Line[i].filename,Line[i].filetype,Line[i].ofilesize,Line[i].newfilesize);
        
    }

}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1898次
    • 积分:54
    • 等级:
    • 排名:千里之外
    • 原创:2篇
    • 转载:9篇
    • 译文:0篇
    • 评论:1条
    文章分类
    最新评论