如何在C中实现类似于复选框的菜单

艾曼·赫鲁什(Aymane Hrouch)

我正在开发一个控制台程序,该程序允许为简单起见在名为Person的结构的数组中搜索。我现在假设所有属性都是整数。

typedef struct Person {
int name;
int city;
int email;
} Person;

因此比较功能将如下所示:

int comparing(int x, int y) {
return x == y;
}

我的问题是搜索功能,因为用户可能希望基于多个条件进行搜索,例如,他可能想向用户显示具有名称6和城市的人55,但我想了一会儿却仍然无法弄清楚如何实现我的菜单,因为它必须像复选框一样工作,用户需要指定他要使用的类型标准,然后指定标准,然后我当然需要根据这些标准进行搜索我的问题很清楚,希望您能提供帮助。可能只用一堆if语句对它进行硬编码,但是我心中不清楚,我希望有更好的方法。

安德烈亚斯·温泽尔(Andreas Wenzel)

如果要具有“复选框”,用户可以通过使用箭头键在屏幕上移动光标然后ENTER按键来激活它们来进行检查,则无法使用C标准库来执行此操作,但是您可以做到这一点与特定于平台的API。例如,如果您使用的是Linux平台,则可以使用ncurses但是,最好不要创建适当的图形应用程序,即不要使用控制台应用程序。

如果要仅使用C标准库的功能将其保留为简单的文本控制台应用程序,则可以有一个文本菜单,用户可以在其中指定要切换复选框的文本菜单,然后询问用户哪个复选框他想要切换的号码。每次更改复选框后,程序都会重新打印所有复选框,以向用户显示复选框的新状态。

在注释部分中,您专门要求提供代码以向您显示搜索循环的外观。因此,我为您编写了一个这样的循环。

此循环要求创建一个struct Person具有名称lf(代表“寻找”)的类型的变量,并用所有搜索条件填充。只需设置实际要搜索的字段。其余字段可以保持未初始化。此外,类型的三个变量bool必须在名称创建should_match_nameshould_match_cityshould_match_email必须设置这三个变量以指定是否搜索相应的字段,如果设置为true,则还必须在lf变量中设置相应的字段请注意,必须#include <stdbool.h>启用对bool变量类型的支持

循环看起来像这样:

for ( int i = 0; i < number_of_valid_elements_in_array; i++ )
{
    if (
        ( !should_match_name  || lf.name  == array[i].name  ) &&
        ( !should_match_city  || lf.city  == array[i].city  ) &&
        ( !should_match_email || lf.email == array[i].email )
    )
    {
        printf(
            "Matching person found:\nName: %d\nCity: %d\nE-Mail: %d\n\n",
            array[i].name, array[i].city, array[i].email
        );
    }
}

请注意,更复杂的搜索算法(例如,数据库引擎中使用的算法)不会搜索所有元素以找到匹配项,而是使用索引进行搜索。这样可以大大加快搜索速度。但是,这些索引必须提前创建。但是,只要您的元素少于一百万,就可能没有关系。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何首先检查类似于Bootstrap按钮的复选框?

来自分类Dev

如何在ObjectListView中使复选框列的行为类似于单选按钮?

来自分类Dev

如何在PySimpleGUIQt中实现复选框功能?

来自分类Dev

如何在PyQtGraph中实现复选框组

来自分类Dev

如何在wpf c#中实现复选框的反转选择

来自分类Dev

如何在复选框中全选

来自分类Dev

复选框的工作方式类似于单选按钮,但如何取消选中呢?

来自分类Dev

使复选框的行为类似于单选按钮

来自分类Dev

bootstrap multiselect复选框的行为类似于单选按钮

来自分类Dev

使单选按钮的行为类似于复选框

来自分类Dev

如何在Java中控制菜单项中的复选框选择?

来自分类Dev

如何在下拉菜单中创建复选框?

来自分类Dev

如何在片段v4的菜单项中添加复选框?

来自分类Dev

Rails3:如何在一个表单中实现多个复选框?

来自分类Dev

Yii 2 ActiveForm表单字段如何在复选框列表中实现“全选”选项?

来自分类Dev

Rails3:如何在一个表单中实现多个复选框?

来自分类Dev

Javafx:如何在 TreeTableView 中实现三态复选框

来自分类Dev

如何在Rust中实现类似于@override的行为

来自分类Dev

如何在Apache Flink中实现类似于samza的WindowableTask?

来自分类Dev

如何在bash中实现类似于'apt search'的搜索

来自分类Dev

如何在复选框中添加复选框到reactjs?

来自分类Dev

如何在隐藏了复选框的CSS中为复选框的标签添加边距?

来自分类Dev

如何在复选框对话框中默认选中复选框

来自分类Dev

如何在foreach中创建复选框时将复选框放置在DIV上

来自分类Dev

如何在 antd 复选框组中单独更新复选框

来自分类Dev

React-如何实现复选框?

来自分类Dev

java - 如何实现libGDX复选框

来自分类Dev

如何在Android中的checkedtextView中对齐复选框

来自分类Dev

如何在Android中的可检查菜单项中的文本左侧放置复选框图标?

Related 相关文章

  1. 1

    如何首先检查类似于Bootstrap按钮的复选框?

  2. 2

    如何在ObjectListView中使复选框列的行为类似于单选按钮?

  3. 3

    如何在PySimpleGUIQt中实现复选框功能?

  4. 4

    如何在PyQtGraph中实现复选框组

  5. 5

    如何在wpf c#中实现复选框的反转选择

  6. 6

    如何在复选框中全选

  7. 7

    复选框的工作方式类似于单选按钮,但如何取消选中呢?

  8. 8

    使复选框的行为类似于单选按钮

  9. 9

    bootstrap multiselect复选框的行为类似于单选按钮

  10. 10

    使单选按钮的行为类似于复选框

  11. 11

    如何在Java中控制菜单项中的复选框选择?

  12. 12

    如何在下拉菜单中创建复选框?

  13. 13

    如何在片段v4的菜单项中添加复选框?

  14. 14

    Rails3:如何在一个表单中实现多个复选框?

  15. 15

    Yii 2 ActiveForm表单字段如何在复选框列表中实现“全选”选项?

  16. 16

    Rails3:如何在一个表单中实现多个复选框?

  17. 17

    Javafx:如何在 TreeTableView 中实现三态复选框

  18. 18

    如何在Rust中实现类似于@override的行为

  19. 19

    如何在Apache Flink中实现类似于samza的WindowableTask?

  20. 20

    如何在bash中实现类似于'apt search'的搜索

  21. 21

    如何在复选框中添加复选框到reactjs?

  22. 22

    如何在隐藏了复选框的CSS中为复选框的标签添加边距?

  23. 23

    如何在复选框对话框中默认选中复选框

  24. 24

    如何在foreach中创建复选框时将复选框放置在DIV上

  25. 25

    如何在 antd 复选框组中单独更新复选框

  26. 26

    React-如何实现复选框?

  27. 27

    java - 如何实现libGDX复选框

  28. 28

    如何在Android中的checkedtextView中对齐复选框

  29. 29

    如何在Android中的可检查菜单项中的文本左侧放置复选框图标?

热门标签

归档