数组元素查找的通用写法举例
来源:互联网 发布:csgo知乎 编辑:程序博客网 时间:2024/05/16 23:11
- 在一个整形数组中查找元素
#include <stdio.h>#include <string.h>void *lSearch(void* key, void* base, int n, int elemSize);int main(){ int array[] = {4,3,5,7,9,8}; int elemNum = 6; int key = 70; void *result = lSearch(&key, array, elemNum, sizeof(int)); if (result != NULL) { printf("Get the item !\n"); } else { printf("Not get yet !\n"); } return 0;}/* The function for item compareation */int StrCmp(void *vp1, void *vp2){ char *s1 = *(char**)vp1; char *s2 = *(char**)vp2; return strcmp(s1, s2);}/* The input is an integer array key: 待查找的关键字内存存储位置 base: 待查找集合的内存存储位置 base: 待查找集合中的元素个数 elemSize: 待查找集合中每个元素的大小字节数*/void *lSearch(void* key, void* base, int n, int elemSize){ int i; for (i=0; i<n; i++) { void *elemAddr = (char*)base + i*elemSize; if (memcmp(key, elemAddr, elemSize) == 0) { return elemAddr; } } return NULL;}
- 在一个字符指针数组中查找某一个字符串是否存在
#include <stdio.h>#include <string.h>int StrCmp(void *vp1, void *vp2);void *StrSearch(void* key, void* base, int n, int elemSize, int (*cmp)(void*, void*));int main(){ char *strArr[] = {"Ab", "B#", "CS", "D", "EF"}; char *key = "Ab"; if (StrSearch(&key, strArr, 5, sizeof(char*), StrCmp)) { printf("Get the item !\n");} else { printf("Not get the item !\n"); } return 0;}/* The function for item compareation */int StrCmp(void *vp1, void *vp2){ char *s1 = *(char**)vp1; char *s2 = *(char**)vp2; return strcmp(s1, s2);}/* The input is an array which contains char* type items */void *StrSearch(void* key, void* base, int n, int elemSize, int (*cmp)(void*, void*)){ int i; for (i=0; i<n; i++) { void *elemAdrr = (char*)base + i*elemSize; if (cmp(key, elemAdrr) == 0) { return elemAdrr; } } return NULL;}
0 0
- 数组元素查找的通用写法举例
- 一种写法简洁且高效的数组查找元素方法
- C#-数组的元素查找
- 查找数组重复的元素
- 数组元素的查找(折半查找)
- multimap的查找和删除元素的使用举例
- 数组的两种种排序方式和查找方式举例
- 查找List,Array中元素C#的写法
- 二叉排序树中查找元素的递归和非递归写法
- 查找最小的k个元素(数组)
- 查找数组中相同的元素
- 递增数组元素的折半查找
- 查找数组某个元素的下标
- 查找数组中重复出现的元素
- 查找循环有序数组的元素
- 旋转数组中元素的查找
- 【HUSTOJ】1077: 数组元素的查找
- 数组中元素的排序,查找
- 程序猿告诉你:我是如何用五年攒够一百万
- js to c++!鼠标点击事件!
- C/C++复习:高于均分的学生(结构体)
- awk 命令 详解
- RecyclerView优雅添加HeaderView FooterView
- 数组元素查找的通用写法举例
- solution Of 1068. Find More Coins (30)
- JAVA回调机制(CallBack)详解
- JAVA reflect (反射) 分析类结构
- UNPv1第十八章:广播
- Android广播机制分析
- 给UICollectionView添加表头
- Piece of Cake
- Java核心技术(二) —— Java的基本程序设计结构