在struct中匹配和搜索并标记true或false C
我正在构建一个由2台服务器和1台客户端组成的预订系统。 我发现了一个障碍,现在我来解释:在struct中匹配和搜索并标记true或false C,c,search,struct,match,C,Search,Struct,Match,我正在构建一个由2台服务器和1台客户端组成的预订系统。 我发现了一个障碍,现在我来解释: -服务器A -服务器B -客户 一旦客户从菜单中选择要预订的内容和时间, 服务器B必须在结构中查找日期,并检查该日期是否可用,如果是发送确定,如果不是,则发送否作为答案。 为了做到这一点,我曾想过以下方法,但它不起作用: bool search(int bet2, bool flag) { int i=0; for(i=0; i < 11; i++){
-服务器A
-服务器B
-客户 一旦客户从菜单中选择要预订的内容和时间, 服务器B必须在结构中查找日期,并检查该日期是否可用,如果是发送确定,如果不是,则发送否作为答案。
为了做到这一点,我曾想过以下方法,但它不起作用:
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中
不管怎样,我错在哪里
抱歉,今天早上我正在写代码,我被困在这里了,可能我没看到
这个代码返回的日期是好的,我哪里错了
content [i] .mark = true
将是
content [i] .mark == true
为了避免这种问题,你可以这样比较
true == content [i] .mark
在这种情况下,即使您忘记了=
并使用=
,编译器也会抱怨
是的,更好的是使用简单易读的语言
if( content [i] .mark )
在C中也没有名为Else
的关键字。它将是Else
在您编写的代码中删除额外的}
。范围改变了,这是错误的
还有,为什么要使用
returnflag=false
在这里没有用。只需执行返回false
或返回true
。因为标志
的更改值不会在任何地方使用。这不是您编译的代码,甚至不是它的一部分。至少Else
会让编译器抱怨。请把这变成一个MCVE。对不起,伙计们,但因为我复制粘贴了它,所以,这不是我的错,我没有注意到,我直接发布了,在作者编辑了文章之后yunnosch@Rock.:Yunnosch编辑问题做得很好,在此之前我编辑了它-除了你之外,没有人添加额外的}
。不要这样责备。@Rock:你编辑了问题-现在你已经修改了你的问题,看我的答案。。回答后不要像这样编辑问题!这已成为一个“动目标问题”。这是阻止潜在回答者的一种非常可靠的方法。我对你有感觉@coderredoc.true==content
,又名Yoda conditions(万一OP想查一下)。@CookiePLMonster.:你是什么意思?我的回答只是提到了在读取==
时,使用=
时出错的地方。我明白了。。我已经提到了-如果我遗漏了什么,请告诉我该修复是correct@Rock如果“这个修正是正确的”,你的意思是答案帮助了你,那么你可能会喜欢读这个:是的,但它不是我问题的解决方案