zoukankan      html  css  js  c++  java
  • qsort与cmp函数函数指针实现

    \(qsort\)函数原型

    void qsort(void *base,size_t nitems,size_t size,int (*compar)(const void *,const void *));
    //base - 待排序的数据序列起始地址 
    //nitems - 数据数列中元素的个数
    //size - 每个元素大小,以字节为单位
    //compar - 用于回调元素比较函数的函数指针 
    

    \(cmp\)函数的函数指针实现

    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    int comp_int(const void *i1,const void *i2)
    {
    	return (*(int *)i1-*(int *)i2);
    }
    int comp_str(const void *s1,const void *s2)
    {
    	return (strcmp(*(char **)s1,*(char **)s2));//注意字符串的指针数组访问要使用二重指针 
    }
    int main()
    {
    	int (*cmp)(const void *,const void *);
    	int i;
    	int a[]={15,42,93,54,15,66,37,8,81};
    	char *str[]={"Tom","Mary","Allen","Jane","Suesan","Jimi"};
    	
    	cmp=comp_int;
    	qsort(a,sizeof(a)/sizeof(a[0]),sizeof(a[0]),cmp);
    	for(i=0;i<sizeof(a)/sizeof(a[0]);++i)
    	 printf("%d\t",a[i]);
    	printf("\n");
    	
    	cmp=comp_str;
    	qsort(str,sizeof(str)/sizeof(str[0]),sizeof(str[0]),cmp);
    	for(i=0;i<sizeof(str)/sizeof(str[0]);++i)
    	 printf("%s\t",str[i]);
    	return 0; 
    	
    }
    
  • 相关阅读:
    day01
    用表单验证数据(1)
    用表单验证数据
    表单
    ORM作业
    mysql完全卸载大全
    mycat特点及用途
    ajax 跨域请求解决方案
    myeclipse使用SVN团队开发
    配置mybatis错误总结
  • 原文地址:https://www.cnblogs.com/Liuz8848/p/15699213.html
Copyright © 2011-2022 走看看