- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在使用一些指针/数组表示法时遇到了问题。我有两个列表,正在对它们进行排序,然后尝试显示它们。关于声明是什么以及为什么,我在下面的代码中有 3 条评论。我的代码如下所示:
int Compare(const void *a, const void *b);
void SortStudents(char *studentList[], size_t studentCount)
{
qsort(studentList, studentCount, sizeof(studentList[0]), Compare);
}
int Compare(const void *a, const void *b)
{
return (strcmp(*(char **)a, *(char **)b));
}
/*Determines which registrants did not attend the first meeting by searching for registrants
that are not in attendees set. */
void DisplayClassStatus(
const char *registrants[], size_t registrantCount,
const char *attendees[], size_t attendeeCount)
{
char **missedFirstMeeting; // not sure if this is the right declaration
char *start, *end;
// not sure if this is right with the &attendees and registrants for the bsearch()
missedFirstMeeting = bsearch(&attendees, registrants, attendeeCount,
sizeof(attendees[0]), Compare);
printf("Missed First Meeting: \n");
//not sure if this the way to traverse through the array using pointers to display
for (start = missedFirstMeeting, end = &missedFirstMeeting[registrantCount-1]; start < end; ++start) {
printf("%s", *start);
}
}
最佳答案
这似乎是家庭作业,所以我会以(希望)引导您朝着正确方向前进的方式回答。
bsearch()
函数在排序列表中搜索 一个 元素,并返回它的位置,或者一个指示符,说明它没有找到。您上面发布的代码似乎以不同的方式使用了 bsearch()
。
考虑单独对待每个注册者,并多次使用 bsearch()
来查看每个注册者是否在与会者列表中。如果不是,则显示注册人姓名。不要忘记 bsearch()
只有在列表已排序时才能正常工作。
关于c - 使用 qsort、bsearch 帮助处理 C 中的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2304040/
要么 cmp func 似乎工作;无法理解在 qsort_cmp 的情况下如何解析 int* 类型的 arg1。 据我所知:int* 被传递给 qsort_cmp,在那里它被更改为 void*,然后在
我有一个看起来像这样的结构: typedef struct dictionary_t{ char word[30]; int foo; int bar; } dictionar
我有一个struct employee比较器和main: #define MAX_SIZE 20 typedef struct Employee{ char name[MAX_SIZE];
我有一个按降序排序的数组,没有重复项。我可以使用 libc 中的 bsearch 函数对其执行二分搜索吗?为此,我是否需要更改传递给它的比较函数? 谢谢 最佳答案 是的,您可以使用bsearch。您需
我有一个结构: typedef struct entry_t { char * name; int lines [MAX]; int n;/*n lines*/ } entry_t; 和一
已修复。 包括 main() { int n; int i; char tempMonth[255]; //Used to store the month until chec
我在进行此搜索时遇到了问题。我非常确定我已经将问题与 bsearch 接受的字节数参数隔离开来。数据数组是一个拼字词典,我 100% 确定整个字典已加载到内存中,但是当我使用 bsearch 时尝试查
我有函数调用 userInteractive(*anangramInfo) ,它传入结构 anangramInfo 的指针,并且该结构包含指向实际字谜词的指针“anagramPointer”。所以,我
我正在尝试在预先排序的数组中查找用户输入的字符串。如果我编写自己的二分查找函数,输入就会被正确找到。如果我使用 C bsearch,我总是得到一个 NULL 指针。 这是相关的代码片段: printf
谁能告诉我为什么以下代码中的 bsearch() 在列表中找不到项目“getwidth”?我尝试了几个编译器,但它们都不适用,所以它一定是我的代码中的一个错误。但是,我真的看不出那里有什么问题。传递给
我正在努力在我的代码中执行 bsearch() 中的比较功能。显然,我想根据包含结构 (word_dict_t) 的字典数组上的键字符串(来自链表)进行二进制搜索 typedef struct {
有没有办法做这样的事情? int key=50; int loop=5; int array[10]={...}; int* Ptr=NULL; qsort(array, 10, sizeof(int
在 C 中使用 bsearch 未能在结构数组中找到字符串“Eva Lam”。此数组按字符串成员的降序排序。检查了很多次,还是不知道bug在哪里?顺便说一句,我正在使用 DEV C++ 5.9.4。请
bsearch 非常适合直接搜索,但是如果我需要例如搜索范围,我应该使用什么? 更新 例如,如果我想找到 a 和 b 之间的值范围 (a >= x < b)。 更新 范围值可以不相等。所以如果我有数组
我有以下程序: #include #include #include #include #include #define DICT_BUFSIZE 64 int compar(const v
我有一个未分类的字典文件,名为“dict.txt”。我已经设法将文件中的单词放入数组中,而且我使用的 qsort() 似乎也工作正常(也就是说,数组已排序)。 当我调用 bsearch() 时出现问题
我有一个指向整数的地址数组(这些整数升序排列)。它们具有重复值。例如:1,2、2、3、3、3、3、4、4…… 我正在尝试获取所有大于 a 的值一定的值(value)(关键)。目前正在尝试使用二进制来实
我有一个这样的数组: typedef struct INSTR { char* str; int argc; } INSTR; const static INSTR instruct
在 C(标准库)中使用 bsearch() 可以快速找到排序数组中的条目。 但是,如何计算插入新条目的位置(使用标准库)? bsearch() 专门检查找到的项目的键是否等于传递的键,如果不是,则返回
我在尝试对 C 中的字符串数组使用 c 内置 bsearch 时遇到一些令人困惑的行为。这是代码。我知道您可以使用内置的 strcmp 来搜索字符串数组,但我包含了 myStrCmp 用于调试目的,因
我是一名优秀的程序员,十分优秀!