【问题标题】:match and search in struct and mark true or false C [closed]在结构中匹配和搜索并标记真或假C [关闭]
【发布时间】:2018-01-25 04:15:06
【问题描述】:

我正在构建一个包含 2 个服务器和 1 个客户端的系统来进行预订。 我发现了一个障碍,现在我来解释一下:
-服务器 A
-服务器 B
-客户

一旦客户从菜单中选择了他想要预订的内容和时间, 服务器 B 必须在结构中查找日期并检查它是否可用,如果它发送一个 ok,如果它不是发送一个 no 作为答案。
为此,我曾想过以下方法,但它不起作用:

bool search(int bet2,  bool flag)
    {
     int i=0;

      for(i=0; i < 11; i++){
        if(strcmp(content[i].date, content[bet2].date) == 0)
        {
           if (content[i].mark == true)
           {
               printf("Date Busy");
               return false;
           } else {
               content[i].mark = true;  
               printf("Date booked day: %s",content[i].date);   
               return true;
            }}
      }
    }

在原型中我这样声明:

bool search (int bet2, bool flag);

我主要是这样声明的:

search (bet2, flag);

结构是这样的:

typedef struct choice {
    char name [40];
    char date [40];
    bool mark;
} Choice;

Choice content [10];

现在我有一个疑问,但是类型 bool 存在于 C 中?

不管怎样,我哪里错了?

对不起,我今天早上正在写代码行,我卡在这里,可能我没有看到它。

这段代码返回的日期是好的,我哪里错了?

【问题讨论】:

  • 那不是你编译的代码,甚至不是它的一部分。至少Else 会让编译器抱怨。请把它变成一个 MCVE。
  • 对不起各位,因为我是复制粘贴所以粘贴的,这不是我的错,我没注意,我直接发了,帖子被yunnosch编辑了
  • @Rock.:Yunnosch 在编辑问题之前做得很好,在此之前我对其进行了编辑 - 除了你之外,没有人添加额外的 }。不要这样责备。
  • @Rock.: 你编辑了这个问题 - 现在你已经修改了你的问题,看着我的回答。回答后不要编辑这样的问题!
  • 这已经成为一个“移动目标问题”。这是阻止潜在回答者的一种非常可靠的方法。我和你在一起@coderredoc。

标签: c search struct match


【解决方案1】:
content [i] .mark = true

将会

content [i] .mark == true

为避免此类问题,您可以使用这样的比较

true == content [i] .mark

在这种情况下,即使您忘记了== 并使用=,编译器也会报错。

是的,更好的是使用简单易读

  if( content [i] .mark )

C 中也没有名为 Else 的关键字。它将是 else。

删除您编写}} 的代码中多余的}。范围发生了变化,这是错误的。

还有为什么要使用return flag = false,这里没用。只需执行return false 或return true。因为flag 的更改值不会在任何地方使用。

【讨论】:

  • true == content,又名尤达条件(以防 OP 想要查找它)。
  • @CookiePLMonster.: 你是什么意思?我的回答刚刚提到使用= insread 的== 出错的地方..我明白了.. 我已经提到过-如果有什么我错过的,请告诉我
  • 这个修复是正确的
  • 是的,但这不是我的问题的解决方案
  • @Rock.: 你编辑了问题...
猜你喜欢
  • 2016-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多